如果数据库没有在同一台服务器.要创建联接服务器.然后就和本机跨数据库同步一样的操作.--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--同一服务器.
create table t_a(id int identity(1,1),username varchar(20))create table t_b(id int identity(1,1),username varchar(20))create trigger tr_a on t_a
for update,insert,delete
as
alter table t_b DISABLE TRIGGER tr_b
----------------------------------
if not exists (select * from deleted) --插入
insert t_b(username) select username from inserted
else if not exists (select * from inserted)--删除
delete t_b where id in (select id from deleted)
else--更新
update a set a.username=i.username from t_b as a,inserted as i where a.id=i.id
alter table t_b ENABLE TRIGGER tr_b------------------------------------------
create trigger tr_b on t_b
for update,insert,delete
as
alter table t_a DISABLE TRIGGER tr_a
----------------------------------
if not exists (select * from deleted) --插入
insert t_a(username) select username from inserted
else if not exists (select * from inserted) --删除
delete t_a where id in (select id from deleted)
else --更新
update a set a.username=i.username from t_a as a,inserted as i where a.id=i.id
alter table t_a ENABLE TRIGGER tr_a
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go
--同一服务器.
create table t_a(id int identity(1,1),username varchar(20))create table t_b(id int identity(1,1),username varchar(20))create trigger tr_a on t_a
for update,insert,delete
as
alter table t_b DISABLE TRIGGER tr_b
----------------------------------
if not exists (select * from deleted) --插入
insert t_b(username) select username from inserted
else if not exists (select * from inserted)--删除
delete t_b where id in (select id from deleted)
else--更新
update a set a.username=i.username from t_b as a,inserted as i where a.id=i.id
alter table t_b ENABLE TRIGGER tr_b------------------------------------------
create trigger tr_b on t_b
for update,insert,delete
as
alter table t_a DISABLE TRIGGER tr_a
----------------------------------
if not exists (select * from deleted) --插入
insert t_a(username) select username from inserted
else if not exists (select * from inserted) --删除
delete t_a where id in (select id from deleted)
else --更新
update a set a.username=i.username from t_a as a,inserted as i where a.id=i.id
alter table t_a ENABLE TRIGGER tr_a
USE master
EXEC sp_configure 'nested triggers', '0'
RECONFIGURE WITH OVERRIDE
go分别建立触发器
create trigger a.dbo.tr_aa
on a.dbo.aa
for insert ,delete,update
as
delete b
from b.dbo.bb b,deleted d
where b.key=d.keydelete c
from c.dbo.cc b,deleted d
where c.key=d.keyinsert b.dbo.bb
select * from insertedinsert c.dbo.cc
select * from insertedgo--其他触发器类似
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'上述两条代码可以连接任何服务器,你如果操作多个数据库的话,可以连接多个服务器,依此类推