我想实现数据同步功能,我只能操作上海的数据库如数据库A北京IP:219.145.145.14,表AA有字段A1,A2,
数据库B上海IP:214.157.145.14,表BB有字段A1,A2,A3我想当表AA有添加,删除,修改操作时,表BB同步更新,且A3值统一为1这个触发器应该如何写呀 ?

解决方案 »

  1.   

    利用sp_addlinkedserver或opendatasource之类的语句来处理远程数据库.只不过不太好. 最好是用web service来实现.
      

  2.   

    web   service怎么实现呢?能不能说说的
      

  3.   

    web service 不懂,关注一下
      

  4.   


    --创建链接服务器
    exec sp_addlinkedserver  'ITSV','','SQLOLEDB','219.145.145.14'
    exec sp_addlinkedsrvlogin 'ITSV','false',null,'用户名','密码'
    --查询示例--有的库权限不一定是 dbo
    select * from ITSV.数据库名.dbo.AA
    ---导入AA表的数据delete RepairBillINSERT INTO RepairBill( A1,A2 )  
    SELECT  A1,A2
    FROM ITSV.数据库名.dbo.AA
             -- WHERE A3='1'
             WHERE ITSV.数据库名.dbo.A3=1
    这是我所知道的解决方法.曾经和你的想法一样.但是没有权限在AA表中.
    所以我用的是此方法.
    可以再加上条件,过滤掉已经增加的数据.如最后一次操作时到AA表中主键的最大值(需要在存储此值)
      

  5.   

    直接拷贝过来的.有的未改正.
    改为:--创建链接服务器 
    exec   sp_addlinkedserver     'ITSV','','SQLOLEDB','219.145.145.14' 
    exec   sp_addlinkedsrvlogin   'ITSV','false',null,'用户名','密码' 
    --查询示例 --有的库权限不一定是   dbo 
    select   *   from   ITSV.数据库名.dbo.AA 
    ---导入AA表的数据 
    INSERT   INTO   BB( A1,A2   )     
    SELECT     A1,A2 
    FROM   ITSV.数据库名.dbo.AA 
                      --   WHERE   A3='1' 
                      WHERE   ITSV.数据库名.dbo.A3=1 
      

  6.   

    nicejane 谢谢了,这些代码写在哪?触发器里面吗?
      

  7.   

    创建链接服务器 只要创建一次就行了,配置好了就可以用:select * from linkerserver.dbname..tablename