触发器--表同步增删查改

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了。


猜你喜欢

转载自blog.csdn.net/nvfuy/article/details/81015728