如何更改列的“默认绑定”?
这有效:
ALTER TABLE [BI011mylovetoys].[mylovetoys150806].[tblTest]
ADD CONSTRAINT test_constraint DEFAULT '10' FOR test
但是由于我之前已经设置了“默认绑定”,我希望以这种方式继续。那么如何设置“默认绑定”呢?
谢谢,
巴里答案 0 :(得分:2)
默认绑定与默认约束不同,正如接受的答案所示。要更改列的默认绑定,请使用sp_unbinddefault
和sp_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