在一个表A里建触发器,向另一台链接服务器里的表B插数据。
但是另一个链接服务器不稳定会当机。怎样保证链接服务器连不上的时候,还能正常把数据插入到表A呢?用instead of触发器和事物去做,可是不管怎么提交都不能向表A插入数据。不知各位达人有何高见?

解决方案 »

  1.   

    我是这样写的:begin tran t1
     insert into A ....
    if @@error<>0
    begin
     rollback tran t1
    end
    commit tran t1begin tran t2
     insert into B ....
    if @@error<>0
    begin
     rollback tran t2
    end
    commit tran t2
      

  2.   

    是instead of 触发器吗?
    如楼上,不要把所有的代码放入一个事务。
    insert into linkServer..B 
      select * from insertedif(@@error<>0)
    begin
      insert into A .......
    end
      

  3.   

    如这样所写,还是不行。
    insert into linkServer..B
      select * from insertedif(@@error <>0)
    begin
      insert into A .......
    end 只是报错:SQL Server 不存在或拒绝访问。
    但是像2楼那样写在存储过程里是好用的,难道说触发器里不支持多个事务的提交?
      

  4.   

    服务器是2000的,换版本是不可能了。
    我现在在本地建了个新表C,往表A插数的同时也往C里插数据,但是C如果失败,A里也不同有数据。有没有达人知道怎么回事的?是不是SQLSERVER触发器里不支持commit啊?