AdSense

網頁

2018/6/18

SQL Server SSMS 日期欄位設定新增及修改時自動插入

在SSMS若要對資料表欄位(column field)設定預設值,方法如下。

在物件總管(Object Explore)的資料表上滑鼠右鍵 -> 設計(Design)開啟設計視窗。

在設計視窗點選要新增預設值的欄位,在下方[資料行屬性]視窗中,在[一般]下面可找到[預設值或繫結](Default Value or Binding),點選右邊的欄位輸入要新增的預設值。

例如要在一個資料格式為datetime2UpdateDatetime欄位新增一個會在新增時自動插入目前時間的預設值,則將[預設值或繫結]的值設定為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的物件總管的資料表的欄位目錄中找到。


參考:

沒有留言:

AdSense