CREATE TRIGGER triggerName --觸發器名稱
ON tblGoods --表名,這個觸發器是針對哪個表的
FOR INSERT,DELETE,UPDATE
AS
--系統自動在內存中創建deleted表或inserted表,觸發器執行完成後,自動刪除。
BEGIN
--Insert
IF(EXISTS(SELECT 1 FROM Inserted) AND NOT EXISTS(SELECT 1 FROM Deleted))
BEGIN
--從Inserted表中取得insert的數據更新到log表
INSERT INTO tblGoodsLog SELECT * FROM Inserted
END
--Delete
IF(NOT EXISTS(SELECT 1 FROM Inserted) AND EXISTS(SELECT 1 FROM Deleted))
BEGIN
--從Deleted表中取得delete掉的數據更新到log表
INSERT INTO tblGoodsLog SELECT * FROM Deleted
END
--Update
IF(EXISTS(SELECT 1 FROM Inserted) AND EXISTS(SELECT 1 FROM Deleted))
BEGIN
--由於update相當於將原來的數據刪掉之後再插入,所以寫log時可以先
--從Deleted表去得刪除的數據(更新前的數據)插入到log表,再從Inserted
--表取插入的數據(更新後的數據)插入到log表中
INSERT INTO tblGoodsLog SELECT * FROM Deleted
INSERT INTO tblGoodsLog SELECT * FROM Inserted
END
END