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