在SQLServer,触发器,插入、更新、删除状态: CREATE TRIGGER t_inms_alarms ON [PHS].[dbo].[AlarmCurrent] FOR INSERT,DELETE AS DECLARE @rows int SELECT @rows = @@rowcount IF @rows = 0 return --如果表是插入,则同步更新AlarmsMiddleTbl IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted) BEGIN INSERT INTO [PHS].[dbo].[AlarmsMiddleTbl] SELECT i.[Id],i.[SequenceId],i.[code],i.[alarmdefineid], CONVERT(varchar,i.[occurTime],120),i.[confirmation],i.[ConfirmationTime], i.[MaintenanceName],i.[MaintenanceProcedure], i.[ClearTime],i.[screen],CONVERT(varchar,getdate(),120) FROM inserted i END --如果表是更新某个字段,则同步更新AlarmsMiddleTbl IF NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted) AND UPDATE(ConfirmationTime) BEGIN INSERT INTO [PHS].[dbo].[AlarmsMiddleTbl] SELECT d.[Id],d.[SequenceId],d.[code],d.[alarmdefineid],d.[occurTime],d.[confirmation],d.[ConfirmationTime], d.[MaintenanceName],d.[MaintenanceProcedure],d.[screen],120) from deleted d END --如果表是删除,则同步更新AlarmsMiddleTbl IF NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted) BEGIN INSERT INTO [PHS].[dbo].[AlarmsMiddleTbl] SELECT d.[Id],120) from deleted d END IF @@error <> 0 BEGIN RAISERROR('ERROR',16,1) rollback transaction return END
摘自网站:http://it.114study.com/ncre/article414624.html
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|