在一个表A里建触发器,向另一台链接服务器里的表B插数据。
但是另一个链接服务器不稳定会当机。怎样保证链接服务器连不上的时候,还能正常把数据插入到表A呢?用instead of触发器和事物去做,可是不管怎么提交都不能向表A插入数据。不知各位达人有何高见?
但是另一个链接服务器不稳定会当机。怎样保证链接服务器连不上的时候,还能正常把数据插入到表A呢?用instead of触发器和事物去做,可是不管怎么提交都不能向表A插入数据。不知各位达人有何高见?
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
如楼上,不要把所有的代码放入一个事务。
insert into linkServer..B
select * from insertedif(@@error<>0)
begin
insert into A .......
end
insert into linkServer..B
select * from insertedif(@@error <>0)
begin
insert into A .......
end 只是报错:SQL Server 不存在或拒绝访问。
但是像2楼那样写在存储过程里是好用的,难道说触发器里不支持多个事务的提交?
我现在在本地建了个新表C,往表A插数的同时也往C里插数据,但是C如果失败,A里也不同有数据。有没有达人知道怎么回事的?是不是SQLSERVER触发器里不支持commit啊?