急急急,请教高手在SQL server中如何用触发器实现两个不同服务器上的相同数据库表的数据同步?
现在在同一局域网内有Srv1和Srv2两台服务器,都安装有数据库SQL server2000,两个数据库中都建立了相同的数据库“test”,并且都有一个相同的“table1”表,如何写SQL server触发器来实现当Srv1服务器中的“table1”表数据发生变化时Srv2服务器中的“table1”表也能跟着变以实现两个数据表同步呢?“table1”表结构为:create table table1(DJBH int identity,DJJE numeric(19,2))。我的处理步骤是:
1、--在A服务器上建立B服务器连接
exec sp_addlinkedserver 'Srv2','','SQLOLEDB','test'
exec sp_addlinkedsrvlogin 'Srv2','false',null,'sa',''
go
2、在 srv1 和 srv2 这两台电脑中,启动 msdtc(分布式事务处理服务),并且设置为自动启动
3、创建同步处理触发器
if (object_id('Trigger1', 'TR') is not null) drop trigger Trigger1
go
create trigger Trigger1 ON table1
after insert
as
begin
set xact_abort on --如果执行 Transact-SQL 语句产生运行时错误,则整个事务将终止并回滚。
set nocount on
set insert Srv2.test.table1(DJBH,DJJE)
select DJBH,DJJE from inserted
end
可是我试验的执行:insert into table1(DJBH, DJJE) values(1, 100) 后总是提示“对象名Srv2.test.table1”无效呢,有劳高手们指点一下到底是哪里出现问题了呢?谢谢