我有一个包含CreatedDate列的sql表。
在数据库中设置:
Binding的默认值(getdate())
ALTER TABLE [dbo].[Person] ADD CONSTRAINT [DF__Person__Creat__6XXXXXXX] DEFAULT (getdate()) FOR [CreatedDate]
GO
当我为该列发送default
时,插入工作正常,但如果我发送NULL,我会得到。
无法将值NULL插入列'CreatedDate'列不允许空值。 INSERT失败。
有没有办法让它工作,所以它会设置当发送null时的当前日期?
答案 0 :(得分:0)
因为您已在该列上设置了约束,并且您已指定该列的默认值为当前日期GetDate()
答案 1 :(得分:0)
猜测,您正在使用INSERT语句的形式,如下所示:
INSERT INTO TableName VALUES (Value1, Value2, . . .)
相反,请使用此表单:
INSERT INTO TableName (Column1, Column2, Column4. . .) VALUES (Value1, Value2, Value4. . .)
请注意,第二个表单指定了包含值的列。只需省略要存储默认值的任何列。
这种形式的INSERT语句总是,因为如果表中列的数量或顺序发生变化,它就不那么脆弱了。它也更清晰,有助于调试。