2012-02-24 41 views
0

如何更改列的“默认绑定”?更改列上的默认绑定

这工作:

ALTER TABLE [BI011mylovetoys].[mylovetoys150806].[tblTest] 
ADD CONSTRAINT test_constraint DEFAULT '10' FOR test 

,但由于我设置了“默认绑定”早些时候,我希望继续以这种方式。那么如何设置“默认绑定”呢?

感谢,

巴里

回答

1

你不能改变默认约束 - 你需要删除旧之一:

ALTER TABLE [BI011mylovetoys].[mylovetoys150806].[tblTest] 
DROP CONSTRAINT old_constraint 

,然后添加新的一个:

ALTER TABLE [BI011mylovetoys].[mylovetoys150806].[tblTest] 
ADD CONSTRAINT test_constraint DEFAULT '10' FOR test 
+0

但是,当我使用这种方法时,'10'没有出现在sql manager的“default binding'字段中。为什么? – Baz 2012-02-24 11:35:37

+0

@Baz:你正在查看**正确的数据库**吗? ? – 2012-02-24 13:16:33

0

默认绑定与默认约束不同,正如接受的答案所示。要更改默认的列的结合,使用sp_unbinddefaultsp_binddefault

CREATE DEFAULT dbo.SYSTEM_DATE AS getdate() 
EXECUTE sp_unbindefault N'dbo.tb_company_industry.stamp_modify_date' 
GO 

EXECUTE sp_bindefault N'dbo.SYSTEM_DATE', N'dbo.tb_company_industry.stamp_modify_date' 
GO 

虽然值得注意的是,为sp_binddefault的文件表明,默认的绑定机制已经过时:

此功能将被删除在未来版本的Microsoft SQL Server中。避免在新开发工作中使用此功能,并计划修改当前使用此功能的应用程序。我们建议您通过使用ALTER TABLE或CREATE TABLE语句的DEFAULT关键字来创建默认定义。有关更多信息,请参阅创建和修改默认定义。