2010-06-17 104 views
31

我在我的SQL Server数据库中有一个现有的列。我试过了我能想到的所有内容,但无法将默认值添加到列中。什么适用于其他数据库是如何将默认值添加到已存在的列中?

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

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

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

回答

63

用途:

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

欲了解更多信息,请参见:Working with Default Constraints

+1

添加了'为'位为你.. – Earlz 2010-06-17 00:18:34

+0

@Earlz:看到,最欣赏:) – 2010-06-17 00:19:38

+0

现在只需要再等3分钟... – Earlz 2010-06-17 00:22:13

6

如果你想改变一个已经存在的默认值柱。您需要先删除约束,然后一遍如下

ALTER TABLE <TABLE> 
DROP CONSTRAINT <CONSTRAINT NAME> 

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

添加如果你不具有表的约束细节的约束,你可以使用下面的查询

sp_helpconstraint <TABLE> 
相关问题