我的SQL Server数据库中有一个现有列。我已经尝试了我能想到的所有内容,但无法将默认值添加到列中。在其他所有数据库中都有效的是
alter table mytable
alter column mycolumn set default(now()) --mycolumn is a datetime
如何在SQL Server中执行此操作?
我得到的确切语法错误是incorrect syntax near the keyword 'set'
答案 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>