38

我的 SQL Server 数据库中有一个现有列。我已经尝试了所有我能想到的方法,但无法将默认值添加到列中。在所有其他数据库中有效的是

alter table mytable 
  alter column mycolumn set default(now()) --mycolumn is a datetime

如何在 SQL Server 中执行此操作?

我得到的确切语法的错误是incorrect syntax near the keyword 'set'

4

2 回答 2

75

采用:

ALTER TABLE dbo.mytable
ADD CONSTRAINT def_mycolumn DEFAULT GETDATE() FOR mycolumn

有关详细信息,请参阅:使用默认约束

于 2010-06-17T00:14:45.863 回答
8

如果要更改已存在列的默认值。您需要先删除约束,然后重新添加约束,如下所示

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME>

ALTER TABLE <TABLE> 
ADD CONSTRAINT <CONSTRAINT NAME> DEFAULT <VALUE> for <COLUMN>

如果您没有表的约束详细信息,则可以使用以下查询

sp_helpconstraint <TABLE>
于 2011-05-04T12:27:18.387 回答