日期:2014-05-18  浏览次数:20496 次

SQL 回滚无效 找不到原因 高手指点下啊

一个过程里有insert 有update ,偶尔出现 插入了没有更新 的情况

begin tran tx
declare @err int
set @err = 0

————————————————插入表1
insert into 表1
……
set @err=@err+@@error


——————————————如果满足条件则更新表2
if (条件1)
begin
update 表2
set @err=@err+@@error
end


if (条件2)
begin
update 表2
set @err=@err+@@error
end


……


IF @err <> 0 
  rollback tran tx
else
  commit tran tx


代码就是这样,

------解决方案--------------------
set xact_abort on 

或 select @err=@err+@@error