高分"如何做到两个sql数据库双向实时更新
有两个异地数据库sqlserver2000   表结构也一样,都有静态ip,可互相访问, 
 如何做个数据库能双向实时更新,而保持数据一致性 
 比如数据库a   ,如果有更新了,马上也能更新到数据库b,   如果数据库b有更新,同样也及时更形到a, 
 我想的办法是两个数据库相互订阅发布,但是不知道会不会出现死循环的情况.就a更新了发布到b,b发现自己更新了又发布到a,不知道是否会这样死循环~~ 
 等待高手回答,或者还又什么好的办法.谢谢了~
------解决方案----------------------字段替换为你实际的主键   
 CREATE TRIGGER [bb] ON [dbo].[testb]  
 FOR INSERT  
 AS SET XACT_ABORT ON 
   insert into testa(message) 
 select * from inserted 
 where 字段 not in (select 字段 from testa) --加控制,只插入不存在.这样由b插入过来触发的时候就不会再插入到b中了. 
 SET XACT_ABORT OFF     
 CREATE TRIGGER [aa] ON [dbo].[testa]  
 FOR INSERT  
 AS SET XACT_ABORT ON 
   insert into testb(message) 
 select * from inserted 
 where 字段 not in (select 字段 from testb) --加控制,只插入不存在的 
 SET XACT_ABORT OFF   
 如果不加控制是会造成死循环,但如果写正确了是完全可以解决此问题的.
------解决方案--------------------drop table testa,testb 
 go 
 create table testa(mid int identity(1,1),message varchar(20)) 
 create table testb(mid int identity(1,1),message varchar(20))   
 CREATE TRIGGER [aa] ON dbo.testa  
 FOR   INSERT  
 AS SET XACT_ABORT ON 
 set  IDENTITY_INSERT dbo.testb on 
   insert into testb(message,mid) 
 select message,mid from inserted  
 where mid not in (select mid from testb) 
 set  IDENTITY_INSERT dbo.testb off   
 insert into testa 
 select  '111 '   
 select * from testa 
 select * from testb   
 /* 
 mid         message               
 ----------- --------------------  
 1           111   
 (所影响的行数为 1 行)   
 mid         message               
 ----------- --------------------  
 1           111   
 (所影响的行数为 1 行) 
 */