更改列的默认绑定

时间:2012-02-24 11:21:40

标签: sql-server-2005

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

这有效:

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

但是由于我之前已经设置了“默认绑定”,我希望以这种方式继续。那么如何设置“默认绑定”呢?

谢谢,

巴里

2 个答案:

答案 0 :(得分:2)

默认绑定与默认约束不同,正如接受的答案所示。要更改列的默认绑定,请使用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关键字来创建默认定义。有关更多信息,请参阅创建和修改DEFAULT定义。

答案 1 :(得分:1)

您无法更改默认约束 - 您需要删除旧约束:

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

然后添加新的:

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