创建两张表 1 user 2 usercopy
两张表结构相同 ,如下图所示:
一:
--创建触发器userinsert1,当user表执行插入操作时,向usercopy表插入同样的数据
IF (
object_id('userinsert1', 'tr') IS NOT NULL
) DROP TRIGGER userinsert1 ;go
CREATE TRIGGER userinsert1
ON
dbo.[user]
after
INSERT
AS
DECLARE @id INT, @name VARCHAR(100), @age VARCHAR(100);
--在inserted表中查询已经插入记录信息
SELECT @id = id, @name = name, @age = age FROM inserted;
INSERT usercopy (id, name, age) VALUES (@id, @name, '1212')
--测试插入数据在user表中,
INSERT dbo.[user] (id, name, age) VALUES ('2', 'test', '22') ;
二:
--创建触发器userupdate1,当user表执行更新操作时,usercopy表同样更新数据
IF (
object_id('userupdate1', 'tr') IS NOT NULL
) DROP TRIGGER userupdate1
go
CREATE TRIGGER userupdate1
ON
dbo.[user]
after
UPDATE
AS
DECLARE @id INT, @name VARCHAR(100), @age VARCHAR(100);
--在inserted表中查询已经更新记录信息
SELECT @id = id, @name = name, @age = age FROM inserted;
UPDATE usercopy set name = @name,age = @age where id = @id
--测试更新数据 在user表中
update dbo.[user] set name = 'name' , age = '33' where id= '1';
三:
--创建触发器userdelete1,当user表执行删除操作时,usercopy表同样删除数据
IF (
object_id('userdelete1', 'tr') IS NOT NULL
) DROP TRIGGER userdelete1
go
CREATE TRIGGER userdelete1
ON
dbo.[user]
after
DELETE
AS
DECLARE @id INT, @name VARCHAR(100), @age VARCHAR(100);
--在deleted表中查询已经删除记录信息
SELECT @id = id, @name = name, @age = age FROM deleted;
print @id
delete from dbo.[usercopy] where id = @id
-- 测试删除数据 在user表中
delete from dbo.[user] where id = '3'