SQL SERVER 数据库默认值不起作用的原因和解决方法

物理表中有一个列需要使用GUID,但是二次开发平台不能设置GUID的默认值,就在表中使用了列默认值

但是经过程序插入后的记录中没有插入默认值,插入的是NULL值。

原因:不是默认值失效了,是程序中的插入语句是表的全部列一起插入,没值的就插入了NULL值。

解决方法:建立触发器,更新自动值为GUID值

create trigger trigger_St_StockDe_insert
on St_StockDe
after insert
as
update A set FGUID=newid()
from St_StockDe A
inner join Inserted B ON A.FStockDeID=B.FStockDeID

原文地址:https://www.cnblogs.com/Bokeyan/p/13684613.html