2017-02-13 191 views
0

我需要更新表中某列的現有默認值。更改SQL Server 2012中的默認值

表名:交易

列名:幣種默認

值:不可用新的當前默認值:NA

有人可以請讓我知道我可以更新現有的默認值爲新的默認值。

我嘗試使用下面statments但他們不爲我工作:

ALTER TABLE TRANSACTIONS ALTER COLUMN CURRENCY SET DEFAULT 'NA'; 

ALTER TABLE TRANSACTIONS ADD CURRENCY varchar(256) DEFAULT 'NA'; 

ALTER TABLE TRANSACTIONS MODIFY COLUMN CURRENCY VARCHAR(256) NOT NULL DEFAULT 'NA'; 

ALTER TABLE TRANSACTIONS CHANGE COLUMN CURRENCY CURRENCY VARCHAR(256) NOT NULL DEFAULT 'NA'; 

alter table TRANSACTIONS alter column CURRENCY set default 'NA'; 
+1

似乎是一個錯誤的默認值選擇。 NULL有什麼問題? – jarlh

+3

[在SQL Server中修改默認值]的可能重複(http://stackoverflow.com/questions/15547210/modify-default-value-in-sql-server) – Heinzi

+0

默認值是約束條件。 [更改列SQL上的DEFAULT約束]的可能的副本(http://stackoverflow.com/questions/20363386/altering-default-constraint-on-column-sql) – dlatikay

回答

1

刪除默認值約束,然後重新創建:

ALTER TABLE TRANSACTIONS DROP CONSTRAINT DF_TRANSACTIONS_CURRENCY 
GO 
ALTER TABLE TRANSACTIONS ADD CONSTRAINT DF_TRANSACTIONS_CURRENCY DEFAULT ('NA') FOR CURRENCY 
GO 

您可能需要更改「DF_TRANSACTIONS_CURRENCY」到如果它不同,則顯示當前約束的名稱。