0

我有一个表 [Product],其中有一列 [CreateTime] datetime null,并且已经有一些数据。

如何将 [CreateTime] 列的默认值设置为 getdate(),并使新添加的数据具有 [CreateTime] 列的默认值 getdate()。

4

1 回答 1

3

您无法更改默认值 - 您需要先删除它,然后重新创建它。

为了删除它,您需要知道它的名称,然后使用

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

这也应该可以解决问题!

马克

于 2009-09-01T04:36:49.890 回答