如何将默认值添加到现有列?

时间:2010-06-17 00:11:37

标签: sql sql-server tsql alter-table default-constraint

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

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

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

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

2 个答案:

答案 0 :(得分:68)

使用:

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

有关详细信息,请参阅:Working with Default Constraints

答案 1 :(得分:7)

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

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME>

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

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

sp_helpconstraint <TABLE>