我有一个表 [Product],其中有一列 [CreateTime] datetime null,并且已经有一些数据。
如何将 [CreateTime] 列的默认值设置为 getdate(),并使新添加的数据具有 [CreateTime] 列的默认值 getdate()。
我有一个表 [Product],其中有一列 [CreateTime] datetime null,并且已经有一些数据。
如何将 [CreateTime] 列的默认值设置为 getdate(),并使新添加的数据具有 [CreateTime] 列的默认值 getdate()。
您无法更改默认值 - 您需要先删除它,然后重新创建它。
为了删除它,您需要知道它的名称,然后使用
ALTER TABLE dbo.Product
DROP CONSTRAINT yourOldDefaultConstraint
完成后,您可以添加一个新的默认约束,并将其应用于现有行,请使用“WITH VALUES”部分:
ALTER TABLE dbo.Product
ADD CONSTRAINT NewDefaultConstraintName
DEFAULT GetDate() FOR CreateTime WITH VALUES
糟糕 - 抱歉,“WITH VALUES”似乎仅在您创建表时创建 DEFAULT 约束或添加列时才有效 - 它似乎不适用于现有列。
在这种情况下,您只需要在 ALTER TABLE 语句之后使用如下内容:
UPDATE dbo.T_Product
SET CreateTime = GETDATE()
WHERE CreateTime IS NULL
这也应该可以解决问题!
马克