xiexie

解决方案 »

  1.   

    根据你运行的代码重要性来决定 什么情况下使用set xact_abort on 
    不过这个的默认值本来就是 on , 所以应该说永远都不需要使用
    rolback tran 当然是出错的情况下,需要回滚使用了,通常写在分支语句里面了
      

  2.   


    当 SET XACT_ABORT 为 ON 时,如果执行 Transact-SQL 语句产生运行时错误,则整个事务将终止并回滚。ROLLBACK TRANSACTION 清除自事务的起点或到某个保存点所做的所有数据修改。它还释放由事务控制的资源。
    将回滚对当前事务中的那一点所做的所有数据修改,包括触发器所做的修改。
    触发器继续执行 ROLLBACK 语句之后的所有其余语句。如果这些语句中的任意语句修改数据,则不回滚这些修改。执行其余的语句不会激发嵌套触发器。
    在批处理中,不执行所有位于激发触发器的语句之后的语句。
      

  3.   

    @hb_gx(高升)
    set Xact_abort  默认值是off吧
      

  4.   

    那既然默认值就是io,发生错误后会自动回滚,那rollback tran不就没用了??