[CreateTime] datetime null列を持つテーブル[Product]があり、すでにいくつかのデータがあります。
列[CreateTime]のデフォルト値をgetdate()に設定し、新しく追加されたデータに列[CreateTime]のデフォルト値getdate()を設定するにはどうすればよいですか。
[CreateTime] datetime null列を持つテーブル[Product]があり、すでにいくつかのデータがあります。
列[CreateTime]のデフォルト値をgetdate()に設定し、新しく追加されたデータに列[CreateTime]のデフォルト値getdate()を設定するにはどうすればよいですか。
デフォルトを変更することはできません。最初にデフォルトを削除してから、再作成する必要があります。
ドロップするには、名前を知ってから使用する必要があります
ALTER TABLE dbo.Product
DROP CONSTRAINT yourOldDefaultConstraint
それが完了したら、新しいデフォルトの制約を追加できます。それを既存の行に適用するには、「WITHVALUES」の部分を使用します。
ALTER TABLE dbo.Product
ADD CONSTRAINT NewDefaultConstraintName
DEFAULT GetDate() FOR CreateTime WITH VALUES
おっと-申し訳ありませんが、「WITH VALUES」は、テーブルの作成時にDEFAULT制約を作成した場合、または列を追加した場合にのみ機能するようです-既存の列には適用されていないようです。
この場合、ALTERTABLEステートメントの後に次のようなものを続ける必要があります。
UPDATE dbo.T_Product
SET CreateTime = GETDATE()
WHERE CreateTime IS NULL
それでもうまくいくはずです!
マーク