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

Ear*_*rlz 35 sql t-sql sql-server alter-table default-constraint

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

alter table mytable 
  alter column mycolumn set default(now()) --mycolumn is a datetime
Run Code Online (Sandbox Code Playgroud)

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

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

OMG*_*ies 71

使用:

ALTER TABLE dbo.mytable
ADD CONSTRAINT def_mycolumn DEFAULT GETDATE() FOR mycolumn
Run Code Online (Sandbox Code Playgroud)

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


sur*_*ran 7

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

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME>

ALTER TABLE <TABLE> 
ADD CONSTRAINT <CONSTRAINT NAME> DEFAULT <VALUE> for <COLUMN>
Run Code Online (Sandbox Code Playgroud)

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

sp_helpconstraint <TABLE>
Run Code Online (Sandbox Code Playgroud)