在SSMS若要對資料表欄位(column field)設定預設值,方法如下。
在物件總管(Object Explore)的資料表上滑鼠右鍵 -> 設計(Design)
開啟設計視窗。
在設計視窗點選要新增預設值的欄位,在下方[資料行屬性]視窗中,在[一般]下面可找到[預設值或繫結](Default Value or Binding),點選右邊的欄位輸入要新增的預設值。
例如要在一個資料格式為datetime2
的UpdateDatetime
欄位新增一個會在新增時自動插入目前時間的預設值,則將[預設值或繫結]的值設定為getdate()
即可。
或透過SQL指令修改如下
ALTER TABLE Employee
ADD CONSTRAINT UpdateDatetime_default
DEFAULT GETDATE() FOR UpdateDatetime;
上例中Employee是資料表名稱;UpdateDatetime_default是條件名稱,可以任意命名;UpdateDatetime是要增加預設值條件的欄位名稱。GETDATE()
是內建的取得當天日期時間的函式。
注意預設條件只會在新增資料時新增,更新既有資料的時候不會更新,如果要更新要設定Trigger觸發程序。
CREATE TRIGGER UpdateDatetime_trigger
ON Employee
AFTER UPDATE AS
UPDATE Employee SET UpdateDatetime = GETDATE()
WHERE EmployeeId IN (SELECT DISTINCT EmployeeId FROM inserted);
UpdateDatetime_trigger是Trigger的名稱,可任意命名;EmployeeId為Employee資料表的唯一識別;inserted
是邏輯資料表,類似定義觸發程序的資料表(Employee)。inserted資料表用來保留使用者修改前的舊值或新值。
增加的條件約束(預設值)或Trigger可在SSMS的物件總管的資料表的欄位目錄中找到。
參考:
沒有留言:
張貼留言