创建表:
CREATE TABLE [dbo].[GeneralRule]( [ID] [int] NOT NULL, [GeneralRuleName] [nvarchar](50) NULL, [DeleteFlag] [int] NOT NULL ) CREATE TABLE [dbo].[DetailRule]( [ID] [int] NOT NULL, [DetailRuleName] [nvarchar](50) NULL, [ParentId] [int] NULL, [DeleteFlag] [int] NOT NULL, ) CREATE TABLE [dbo].[DetailRule_bak]( [ID] [int] NOT NULL, [DetailRuleName] [nvarchar](50) NULL, [ParentId] [int] NULL, [DeleteFlag] [int] NOT NULL, )
创建触发器:
--增加 create trigger triAddGeneralRule on DetailRule for insert --为什么事件触发 as begin insert into [DetailRule_bak](ID,detailRuleName,ParentId,DeleteFlag) select ID,detailRuleName,ParentId,DeleteFlag from INSERTED end --删除 create trigger triDelGeneralRule on GeneralRule for delete --为什么事件触发 as delete DetailRule from DetailRule dr,Deleted d where dr.parentId=d.ID --修改 create trigger triGeneralRule on GeneralRule for update --为什么事件触发 as if update (ID) begin update DetailRule set parentId=i.ID from DetailRule dr,Deleted d,Inserted i --2个临时表Deleted和Inserted,分别表示触发事件的旧与新记录 where dr.parentId=d.ID end