请教各位高手:
    如何才能使得SQL2000 server的数据库与sql 7.0的数据库保持数据同步,当sql7.0的数据变动时,sql2000能与它保持数据同步?
    急!急!急!

解决方案 »

  1.   

    --引用邹建的
    *--同步两个数据库的示例测试环境及同步要求:有数据库服务器srv1和srv2,两台电脑能互相访问,有数据
    srv1.库名..author有字段:id,name,phone,
    srv2.库名..author有字段:id,name,telphone,adress要求:
    srv1.库名..author增加记录则srv1.库名..author记录增加
    srv1.库名..author的phone字段更新,则srv1.库名..author对应字段telphone更新
    --*/--大致的处理步骤
    --1.在 srv1 上创建连接服务器,以便在 srv1 中操作 srv2,实现同步
    exec sp_addlinkedserver  'srv2','','SQLOLEDB','srv2的sql实例名或ip'
    exec sp_addlinkedsrvlogin 'srv2','false',null,'用户名','密码'
    go--2.在 srv1 和 srv2 这两台电脑中,启动 msdtc(分布式事务处理服务),并且设置为自动启动
    我的电脑--控制面板--管理工具--服务--右键 Distributed Transaction Coordinator--属性--启动--并将启动类型设置为自动启动
    go
      

  2.   

    --3.实现同步处理--a.在srv1..author中创建触发器,实现数据即时同步
    --新增同步
    create trigger tr_insert_author on author
    for insert
    as
    set xact_abort on
    insert srv2.库名.dbo.author(id,name,telphone)
    select id,name,telphone from inserted
    go--修改同步
    create trigger tr_update_author on author
    for update
    as
    set xact_abort on
    update b set name=i.name,telphone=i.telphone
    from srv2.库名.dbo.author b,inserted i
    where b.id=i.id
    go--删除同步
    create trigger tr_delete_author on author
    for delete
    as
    set xact_abort on
    delete b 
    from srv2.库名.dbo.author b,deleted d
    where b.id=d.id
    go
      

  3.   

    欢迎加入WEB技术讨论群 21569111
      

  4.   

    回HAPPYFLYSTONE:SQL2000才具有分布、分发及订阅服务器的功能,而SQL7。0中好象并不具备该该功能。因此好象很难用到发布和订阅的方式实现数据的自动同步。
    回SCMAIL81:第一种方式:好象不能自动同步,只能手动同步,不能满足我的要求。第二种方式:只设置启动 msdtc(分布式事务处理服务)就可以了吗?能实现SQL2000服务器的数据(要求的表或字段)主动并且自动的同步SQL7.0上的数据吗,而且我的条件是SQL7.0的数据库是主的,SQL2000是从的。第三种方式:好象不行,因为SQL7.0数据库的表、存储过程、触法器,我是不能修改的,只能读取它的数据。
    我的具体情况再说明以下:
    SQL7.0数据库的数据,我只能利用、读取,不能做任何的修改。SQL2000数据库中的部分数据需要同步SQL7.0数据库中的数据。SQL2000我可以有任何的权限做任何的设置。而且这个数据的同步是要求实时的。
      

  5.   

    SQL7.0不能升级,因为7.0是有别的系统在用,不能改动。
      

  6.   

    要shis同步数据,就必须要在源数据库中建立触发器来监控源数据库的变化
      

  7.   

    回SCMAIL81:不好意思,我搞错了你的意思,我后来仔细看了一下,原来是三个步骤,而不是三种方式。我按照你方法查看了系统的帮助,发现SRV1、SVR2所在的系统必须都是WIN2000SERVER而且文件系统必须都是NTFS的结构才可以完成自动实时同步的功能,但是我的SQL7.0只是WIN2000 pro和FAT的结构,所以不能做自动同步,只能做手工同步。这样还是不能实现我的需求啊。看看各位还有什么好的方法啊?多谢!