2

我有一个包含 CreatedDate 列的 sql 表。

它在数据库中设置:

绑定的默认值 (getdate())

ALTER TABLE [dbo].[Person] ADD  CONSTRAINT [DF__Person__Creat__6XXXXXXX]  DEFAULT (getdate()) FOR [CreatedDate]
GO

当我发送default该列时插入有效,但如果我发送 NULL 我得到。

无法将值 NULL 插入列“CreatedDate”列不允许空值。插入失败。

有没有办法让它工作,所以它会在发送 null 时设置当前日期?

4

2 回答 2

0

因为您已在该列上设置了约束,并且您已指定该列上的默认值是当前日期GetDate()

于 2012-10-15T00:50:03.833 回答
0

猜测一下,您正在使用如下形式的 INSERT 语句:

 INSERT INTO TableName VALUES (Value1, Value2, . . .)

相反,使用这种形式:

 INSERT INTO TableName (Column1, Column2, Column4. . .) VALUES (Value1, Value2, Value4. . .)

请注意,第二种形式指定您要包含哪些列的值。只需省略您希望为其存储默认值的任何列。

这种形式的 INSERT 语句总是更可取,因为如果表中列的数量或顺序发生变化,它就不太脆弱。它也更清晰,有助于调试。

于 2012-10-15T00:54:50.613 回答