--不需要
set xact_abort on  --设置出错时自动回滚事务
begin tran
 .....你的处理
commit tran

解决方案 »

  1.   

    1.
    set xact_abort on
    2.也可以在最后设置一个if @@error判断。
      

  2.   

    set xact_abort on
    begin tran
     ..... 这里的处理
    commit tran
    ...xxx
    ...yyy
    *************
    这里的处理如果发生错误,自动回滚后,commit tran后面的...xxx,...y会继续执行吗?
           如果会继续执行,在...xxx的地方我怎么知道前面的处理是否已经回滚,我需要加一个标志变量,还是直接有内置变量可以判断???
      

  3.   

    那就在每个语句后面判断declare @err int
    begin tran
      update ...
      set @err=@@error --必须保存起来
      if @err>0
      begin
         print '错误'
         rollback tran
         return @err
      end
      update ...
      set @err=@@error --必须保存起来
      if @err>0
      begin
         print '错误'
         rollback tran
         return @err
      end
    commit tran