请教同一个服务器,两个数据库之间同步更新数据的触发器SQL语句

我要更新两个数据库中,同一个数据库表的触发器语句要如何写。
数据库(uf_001_2009和uf_002_2009),两个数据库中都有一个表(ComputationGroup)表的结构相同。我想要uf_001_2009数据库表ComputationGroup中增加删除修改数据的时候,同时更新uf_002_2009中的ComputationGroup表。请问谁能帮我写一个语句。同时把语句做一下必要的注释,我没有写过触发器。

一个例子:
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

select * from t_a
select * from t_b

--测试:
insert t_a(username) values('test')
insert t_b(username) values('test2')
update t_a set username='test1' where id=1
update t_b set username='test3' where id=1
delete from t_a where id=1
delete from t_b where id=2
--------------------------
select * from t_a
select * from t_b
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-18
CREATE TRIGGER 触发器名称 ON [dbo].[表名]
FOR INSERT, UPDATE, DELETE
AS
begin
insert 数据库.dbo.表名(列名) select scend from inserted
end本回答被网友采纳

sql server触发器 两个数据库表同步更新
CREATE TRIGGER trigger_cgjh_insert ON [dbo].[cg_cgjh_bt]FOR INSERT AS BEGIN insert into openrowset('sqloledb','192.168.0.100';'sa';'10060','select * from knss2009.dbo.yw_kck') select * from yw_kck END 给你写过例子可以实现跨服务器跨库的语句吧,你那种方法没用过 你在...

sql 两个数据库之间怎么更新数据
sql 两个数据库之间怎么更新数据 --触发器可以,通过数据库2中的表B更新数据库1中的表A。create trigger tgr_update on 数据库2.dbo.B for update as begin update 数据库1.dbo.A set 数据库1.dbo.A.字段='值' from inserted where 数据库1.dbo.A.字段=inserted.字段 end ...

sql如何将两个表里的数据同步
触发器还可以针对表的 insert,delete, update 操作时安装要求执行数据同步的操作,即可实现两个表里的数据同步。

SQL如何将两个不同数据库同一张表的数据同步更新
只要你要更新的表加上数据库名,下面是例子,你自己在触发器里仿照一下 UPDATE Northwind.dbo.employees SET lastName = '' WHERE lastName = ''

...有一个相同的数据库,如何实现两个数据库同步更新
SQL数据同步:利用数据库复制技术实现数据同步(同时)更新、复制等概念 说明 :复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据...

sql 同一个表里的两个值怎么同步,或者关联
数据库字段设计,有个地方填写默认值的,你在CID的字段设计那里,填写为cate_id,以后再来就有值了。如果是改现在的,就在查询分析器里面,执行语句 update 表名 set cid= cate_id 这样,CID的值,就全部转变为cate_id了,执行前建议备份下这个表,因为执行了,就不能还原了 ...

oracle 怎样同步两张大表数据,用sql语句实现
1、写个触发器,在a表中insert数据的时候同时在b表中insert。2、写个存储过程,写两个insert语句,将数据同时insert到a表和b表中,在程序中调用存储过程。

实现MySQL数据同步如何让两个表相互同步mysql两表同步数据
1. 使用触发器进行同步 MySQL支持使用触发器来自动执行一些操作,例如在一个表中插入数据时,可以在触发器中设定另一个表自动插入相同的数据。使用触发器可以实现数据的自动同步,但对于大型数据库来说,这种方法可能会影响系统性能。2. 使用存储过程进行同步 使用存储过程可以通过一系列操作实现数据的自动...

sql server2008,同一数据库里的两张不同的表怎么实现同步?
更新 create trigger up_table on aaa for update as if update(a1)or update(a2)begin update t2 set b1=t1.a1,b2=t1.a2 from inserted t1,bbb t2 where t1.aid=t2.bid end 插入 create trigger in_table on aaa for insert as insert into bbb(b1,b2)select a1,a2 from inserted end...

sqlserver不同数据库怎么让数据实时同步?
可以使用数据库比较与同步工具DBSync,具体做法:先建立一个任务:以A为同步之源,以B为同步之目标,同步方式设置为增量同步,以后,只要A发生增删改,就会同步更新至B。

相似回答