begin transaction是开始
commit transaction是结束
如果在他们中间出现retrun就会报错!
本人愚昧,就是上面三段话,不甚理解
我的错误:EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。上一计数 = 1,当前计数 = 2就是在中间出现了return
放到commit transaction之后就好了

解决方案 »

  1.   

    每一个begin transaction是开始,事务计数器就加1每一个commit transaction是结束,事务计数器就减1而rollback不管事务是在第几层,一但rollback,
    立即返回到第0层,结束所有事务,事务计数器清零。
    return 是返回,一般是在事务计数器为零时,
    所以要等到commit transaction到每零层,或rollback第零层,
    才可以return过程,自己的低见,不一定对,再参考下网上和楼下朋友的高见
      

  2.   

    如果在事务还没有结束(commit 提交事务,rollback 回滚事务)就return的话,直事务会一直保持,后续的所操作,会记录在日志文件中,直到硬盘满,之后强行结束事务,return后的所有操作都回滚,相当于无效.你说这个有后果有多严重?
    显式事务应用一定要小心.要保证事务能够结束.要么提交,要么回滚.