若Count欄位之值大於100則更新State欄位之值為1。
資料表名稱:CountAlarm,資料結構如下,資料表必須要有主鍵(如Idx欄位)。
MSSQL的Trigger創建語法如下:
CREATE trigger [Alarm] on [dbo].[CountAlarm] after update
as
begin
if (update([Count]))
Begin
update CountAlarm set [State] = 1
where CountAlarm.[Count] > 100
and CountAlarm.Idx in (select i.Idx from inserted i join deleted d on i.Idx = d.Idx)
end
end
inserted為觸發程序中的「新增」資料表,觸發時有新增的資料都會記錄在此資料表中。
deleted為觸發程序中的「刪除」資料表,觸發時有被刪除的資料都會記錄在此資料表中。
而更新過的資料則會同時紀錄在inserted和deleted兩個資料表中,所以將此兩個表做inner join即可得知更新的資料。
update([Count]) 語法為判斷Count欄位是否有被更新。