Sql server 如何编写sql来设置alter列';sql server 2005中的默认值是多少?

Sql server 如何编写sql来设置alter列';sql server 2005中的默认值是多少?,sql-server,alter,Sql Server,Alter,我有一个列为[CreateTime]datetime null的表[Product],它已经有一些数据了 如何将列[CreateTime]的默认值设置为getdate(),并使新添加的数据具有列[CreateTime]的默认值getdate()。无法更改默认值-需要先删除它,然后重新创建它 要删除它,您需要知道它的名称,然后使用 ALTER TABLE dbo.Product DROP CONSTRAINT yourOldDefaultConstraint 完成此操作后,可以添加新的默认约

我有一个列为[CreateTime]datetime null的表[Product],它已经有一些数据了


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

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

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

ALTER TABLE dbo.Product
  DROP CONSTRAINT yourOldDefaultConstraint
完成此操作后,可以添加新的默认约束,为了将其应用于现有行,请使用“带值”部分:

Oops-抱歉,只有在创建表时创建默认约束,或者添加列时,“带值”才起作用-它似乎不会应用于现有列

在这种情况下,您只需在ALTER TABLE语句后面添加以下内容:

UPDATE dbo.T_Product
SET CreateTime = GETDATE()
WHERE CreateTime IS NULL
这也应该奏效


Marc

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

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

ALTER TABLE dbo.Product
  DROP CONSTRAINT yourOldDefaultConstraint
完成此操作后,可以添加新的默认约束,为了将其应用于现有行,请使用“带值”部分:

Oops-抱歉,只有在创建表时创建默认约束,或者添加列时,“带值”才起作用-它似乎不会应用于现有列

在这种情况下,您只需在ALTER TABLE语句后面添加以下内容:

UPDATE dbo.T_Product
SET CreateTime = GETDATE()
WHERE CreateTime IS NULL
这也应该奏效

马克