標籤:sqlserver 觸發器
-- TABLE INSERTVAL UPDATEVALif (object_id(‘DATA_SYNC_FH_DJ‘,‘TR‘) is not null) drop trigger DATA_SYNC_FH_DJgocreate trigger DATA_SYNC_FH_DJon FH_DJ for insert,update,deleteas declare @oldUpdate varchar(20), @newDate varchar(20), @DJdanhao varchar(20), @Djid int, @isInsert bit, @isUpdate bit, @isDelete bit; -- 判斷是否為插入操作 IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)BEGINSET @isInsert = 1;select @Djid = djid from inserted;ENDELSESET @isInsert = 0-- 判斷是否為更新操作IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)BEGINSET @isUpdate = 1;select @Djid = djid from inserted;ENDELSESET @isUpdate = 0-- 判斷是否為刪除操作IF (NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted))BEGINSET @isDelete = 1;select @DJdanhao = DJdanhao from deleted;ENDELSESET @isDelete = 0 --更新前的資料 select @oldUpdate = F_SYNC_UPDATE from deleted; --通過應用程式修改時,F_SYNC_UPDATE=null或F_SYNC_UPDATE=0,此時不需要更新F_SYNC_DATE 時間戳記,也不需要記錄刪除記錄 if ((@oldUpdate is null) or (@oldUpdate = 0)) begin --更新操作,更新時間戳記F_SYNC_DATE=systimestamp和F_SYNC_UPDATE=null if (@isUpdate = 1)insert into DATA_SYNC_B_OPERATOR (t_name, o_type, o_date, VKEYS)values (‘FH_DJ‘, 2, GETDATE(), @Djid);--把新增加的記錄插入到操作記錄表if (@isInsert = 1) insert into DATA_SYNC_B_OPERATOR (t_name, o_type, o_date, VKEYS) values (‘FH_DJ‘, 1, GETDATE(), @Djid);--把刪除記錄的主鍵添加到操作記錄表if (@isDelete = 1) insert into DATA_SYNC_B_OPERATOR (t_name, o_type, o_date, VKEYS) values (‘FH_DJ‘, 3, GETDATE(), ‘[email protected]‘ + @DJdanhao); endgo
本文出自 “隨便寫寫” 部落格,請務必保留此出處http://7156680.blog.51cto.com/7146680/1790838
SQL Server 建立觸發器