1个回答
展开全部
---创建测试表: Create Table MyTest( id int identity(1,1) not null primary key, [name] varchar(100) null ) --创建触发器: CREATE TRIGGER trigtest--创建触发器trigtest ON mytest--在表mytest上建 for INSERT,DELETE,UPDATE--为插入,删除,修改 AS BEGIN declare @a int, @b int, @id int, @name varchar(100), @oldId int,--原ID号 @oldName varchar(100)--原来的name set @a=0 set @b=0 if exists(select * from inserted)--如果存在插入新的数据则设置@a=1 begin set @a=1 end if exists(select * from deleted)--如果存在删除数据则设置@b=1 begin set @b=1 end if (@a=1)and(@b=0)--新增:当插入表inserted存在数据而删除表deleted不存数据时,为新增操作。 begin select @id=id,@name=name from inserted print '增加了ID号为【'+cast(@id as varchar(5))+'】Name为【'+@name+'】的数据!' end if (@a=1)and(@b=1)--修改:当插入表insertedt和删除表deleted都存在数据时,为修改操作。 begin select @id=id,@name=name from inserted select @id=id,@oldname=name from deleted print '修改了ID号为【'+cast(@id as varchar(5))+'】的数据Name由【'+@oldname+'】变为【'+@name+'】' end if (@a=0)and(@b=1)--删除:当插入表inserted不存在数据而删除表deleted存在数据时,为删除操作。 begin select @id=id,@name=name from deleted print '删除了ID号为【'+cast(@id as varchar(5))+'】Name为【'+@name+'】的数据!' end END
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询