楼主可以考虑用触发器同步两个表--创建测试表,不能用标识列做主键,因为不能进行正常更新
--在A,B数据库上创建测试表,实现A数据库中的test更新,同步B数据库的TEST
if exists (select * from dbo.sysobjects where id = object_id(N'[test]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [test]create table test(id int not null constraint PK_test primary key
,name varchar(10))
go--创建同步的触发器,仅A数据库需要,B数据库不创建触发器
create trigger t_test on test
for insert,update,delete
as--进行事务处理,如果表用标识列做主键
BEGIN TRANSACTION
delete from b..test)
where id in(select id from deleted)
insert into b..test)
select * from inserted
commit tran
go--插入数据测试
insert into test
select 1,'aa'
union all select 2,'bb'
union all select 3,'c'
union all select 4,'dd'
union all select 5,'ab'
union all select 6,'bc'
union all select 7,'ddd'--删除数据测试
delete from test where id in(1,4,6)--更新数据测试
update test set name=name+'_123' where id in(3,5)--显示测试的结果
select * from test a full join b..test) b on a.id=b.id

解决方案 »

  1.   

    可能我没有把需求说清需:
     数据库A是可能在一天中随时会发生如下数次变化:某条纪录的更新,某个表结构的变化,或有一条新的纪录。
     而数据库B则会在一个星期内不定期做数据库更新,那么,我该如何实现数据库B在某一时刻与数据库A的数据一样呢?
     请高手指教!!!!