sql server 触发器实现多表之间同步增加,删除与更新。
1 、 数据同步增加:
如有两张表--A表和B表,创建触发器使A表插入数据后B表也同步插入数据。其中b表插入数据的字段需要同A表中的字段相对应。
CREATE TRIGGER 触发器名称
ON A表
AFTER INSERT
AS BEGIN INSERT INTO
B表(B表字段1,B表字段2,B表字段3)
SELECT A表字段1,A表字段2,A表字段3
FROM INSERTED
END
CREATE TRIGGER [dbo].[lumadb0521] (触发器名称)
ON [dbo].[T_Mob_Reg] (A表)
AFTER INSERT
AS
begin
INSERT INTO lumadb0521_4.dbo.T_Mob_Reg (B表)
SELECT * FROM inserted
end
2、数据同步删除:
两张表 A表B表,创建触发器使当A表删除数据后B表也同步删除数据,其中B表与A表应有相应主键关联。
CREATE TRIGGER 触发器名称
ON A表
AFTER DELETE
AS BEGIN DELETE B表
WHERE
B表主键 IN(
SELECT A表主键
FROM DELETED)
END
CREATE TRIGGER 触发器名称
ON [dbo].[T_Mob_Reg]
AFTER DELETE
AS BEGIN DELETE [lumadb0521_4].[dbo].[T_Mob_Reg]
WHERE
[lumadb0521_4].[dbo].[T_Mob_Reg].id IN(
SELECT id --A表主键
FROM DELETED)
END
3、数据同步更新:
AB两张表,创建触发器使当A表数据更新后B表也同步更新数据。
CREATE TRIGGER 触发器名称
ON A表
AFTER UPDATE
AS
update B表
SET
B.B表字段1=A.A表字段1
FROM
B表 AS B,INSERTED AS A
WHERE B.B表主键=A.A表主键
CREATE TRIGGER [dbo].[lumadb0521_update]
ON [dbo].[T_Mob_Reg]
AFTER UPDATE
AS
begin
if update(mobileNo)
begin
update [lumadb0521_4].[dbo].[T_Mob_Reg]
set mobileNo=d.mobileNo,
nickName=d.nickName,
headlmage_ural=d.headlmage_ural
from [lumadb0521_4].[dbo].[T_Mob_Reg] br , inserted d --Deleted和Inserted临时表
where br.id=d.id
end
end
4、修改触发器用 将 create 换成 alter 就ok了。