加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer触发器 应用案例Demo(数据同步场景)

发布时间:2020-12-12 13:32:55 所属栏目:MsSql教程 来源:网络整理
导读:创建两张表 1?user?? 2 usercopy 两张表结构相同?,如下图所示: 一: --创建触发器userinsert1,当user表执行插入操作时,向usercopy表插入同样的数据 IF ( ?object_id('userinsert1','tr') IS NOT NULL ) DROP TRIGGER userinsert1 ;go CREATE TRIGGER use

创建两张表 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,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,@age VARCHAR(100);
--在inserted表中查询已经更新记录信息
SELECT @id = id,@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,@age VARCHAR(100);
--在deleted表中查询已经删除记录信息
SELECT @id = id,@age = age FROM deleted;
print @id
delete from dbo.[usercopy] where id = @id


--?测试删除数据?在user表中
delete from dbo.[user] where id = '3'






??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读