我的SQL Server数据库中有一个已有的列,我已经尝试了我能想到的一切,但是无法在该列上添加默认值。 在其他所有数据库中正常工作的是
alter table mytable
alter column mycolumn set default(now()) --mycolumn is a datetime
如何在SQL Server中执行此操作?
使用该确切语法时,我收到的错误是:incorrect syntax near the keyword 'set'
我的SQL Server数据库中有一个已有的列,我已经尝试了我能想到的一切,但是无法在该列上添加默认值。 在其他所有数据库中正常工作的是
alter table mytable
alter column mycolumn set default(now()) --mycolumn is a datetime
如何在SQL Server中执行此操作?
使用该确切语法时,我收到的错误是:incorrect syntax near the keyword 'set'
使用:
ALTER TABLE dbo.mytable
ADD CONSTRAINT def_mycolumn DEFAULT GETDATE() FOR mycolumn
更多信息请参阅:使用默认约束
如果您想更改已存在列的默认值,则需要先删除约束,然后按照以下步骤重新添加约束。
ALTER TABLE <TABLE>
DROP CONSTRAINT <CONSTRAINT NAME>
ALTER TABLE <TABLE>
ADD CONSTRAINT <CONSTRAINT NAME> DEFAULT <VALUE> for <COLUMN>
sp_helpconstraint <TABLE>
SYSUTCDATETIME()
会是更好的默认表达式,因为GETDATE()
返回的时间是服务器本地时区的时间,这很愚蠢。 - Dai