求触发器:
A地有数据库Mac,B地也有Mac,他们的表结构完全相同。如何实现A地的Mac中的记录增删改,B地的Mac中的记录也相应的增删改;B地的Mac中的记录增删改,A地的Mac中的记录也相应的增删改。A,B地在同一局域网内,A地IP地址:192.168.0.1;B地IP地址:192.168.0.2数据库Mac结构各位兄弟们帮忙,求具体代码,分不够再加

解决方案 »

  1.   

    --例如sp_addlinkedserver @server = N'LinkServer', --分别加入链接服务器
        @srvproduct = N' ',
        @provider = N'SQLOLEDB', 
        @datasrc = N'ServerNetName', 
        @catalog = N'库名'
    GOCreate trigger trigname on tablename
    for insert
    as
    begin
      Insert into LinkServer.库名.dbo.tablename
      select * from Inserted
    end 
    go
      

  2.   

    我用邹大侠的这个只能实现A to B;如何实现A to B且B to A呢?兄弟们帮帮忙!!!!!!!!!!!!!!!!!!!!--创建同步的触发器
    CREATE trigger t_test on Mac_test
    for update
    as
    set  XACT_ABORT on
    --启动远程服务器的MSDTC服务
    --exec master..xp_cmdshell 'isql /S"192.168.1.107" /U"sa" /P"sa" /q"exec master..xp_cmdshell ''net start msdtc'',no_output"',no_output--启动本机的MSDTC服务
    --exec master..xp_cmdshell 'net start msdtc',no_output--进行分布事务处理,如果表用标识列做主键,用下面的方法
    BEGIN DISTRIBUTED TRANSACTION
    delete from openrowset('sqloledb','192.168.1.107';'sa';'sa',Mac.dbo.Mac_test)
     where id in(select id from deleted)
    insert into openrowset('sqloledb','192.168.1.107';'sa';'sa',Mac.dbo.Mac_test)
     select * from inserted
    commit tran