--delete觸發器 IF(EXISTS(SELECT * FROM sysobjects WHERE name='T_PlanQtyDelete')) DROP TRIGGER T_PlanQtyDelete go Create trigger T_PlanQtyDelete On PlanQty for Delete As INSERT INTO dbo.PlanQtyHistory(qty, addDate, Productid) SELECT qty, addDate, Productid FROM deleted go --update觸發器 IF(EXISTS(SELECT * FROM sysobjects WHERE name='T_PlanQtyUpdate')) DROP TRIGGER T_PlanQtyUpdate go CREATE TRIGGER T_PlanQtyUpdate ON PlanQty FOR UPDATE AS IF UPDATE(qty) BEGIN INSERT INTO dbo.PlanQtyHistory(qty, addDate, Productid) SELECT qty, addDate, Productid FROM deleted --deleted 表示修改前的值 inserted 表示修改后的值 END
deleted:刪除之前會先把記錄存在這張表里
inserted:修改之前會先把記錄寫在這種表里
update 會先把記錄寫入deleted 然后再inserted
同時 truncate table PlanQty 不會觸發 delet觸發器 換成delete