2012-02-24 58 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關鍵字來創建默認定義。有關更多信息,請參閱創建和修改默認定義。