本篇文章主要是要透過撰寫T-SQL Script去異動一個欄位的預設值(Default Value)。
假設我們在Northwind這個資料庫中,有一個Table名為TestTable,其中有兩欄位MachineID與Name,如下圖:
如果你想要使用SQL 語法去異動欄位結構,則可使用下列語法:
1.將MachineID欄位設為允許Null值
alter table TestTable alter column MachineID int null
2.為MachineID欄位新增一個default值=>1
alter table TestTable ADD DEFAULT 1 FOR MachineID
現在要將上面兩項異動再還原回去,則可使用下列語法:
3.將MachineID欄位設不可為Null值
alter table TestTable alter column MachineID int not null
4.移除MachineID欄位的default值須,先查詢該default的名稱,如下:
use Northwind
SELECT * FROM sys.objects
由上可知我們查出在sys.objects這個Table中,若欄位名稱為Type這個欄位的值為「D」時,表示該筆記錄為「Default Value」,該default的名稱為DF__TestTable__Machi__5812160E,接著使用下列語法來刪除MachineID欄位的default值。
alter table TestTable DROP constraint DF__TestTable__Machi__5812160E
如果我們直接使用下列語法直接刪除Default Value,則會有下圖的錯誤產生。
DROP DEFAULT DF__TestTable__Machi__5812160E