2

CreatedDate列を持つSQLテーブルがあります。

これは、データベースで次のように設定されています。

バインディングのデフォルト値(getdate())

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

その列を送信すると挿入は機能defaultしますが、NULLを送信すると取得します。

値NULLを列'CreatedDate'列に挿入できません。列はNULLを許可しません。INSERTは失敗します。

これを機能させて、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. . .)

2番目の形式は、値を含める列を指定することに注意してください。デフォルト値を保存する列はすべて省略してください。

この形式のINSERTステートメントは、テーブル内の列の数または順序が変更された場合に脆弱性が低くなるため、常に推奨されます。また、より明確で、デバッグに役立ちます。

于 2012-10-15T00:54:50.613 に答える