繁体   English   中英

提交和回滚在存储过程中不起作用

[英]Commit and Rollback is not working in stored procedure

我从我发布的问题中得到了我的一个问题的答案点击这里

我有这个解决方案

BEGIN TRY
BEGIN TRANSACTION 
    exec( @sqlHeader)
    exec(@sqlTotals)
    exec(@sqlLine)
COMMIT
 END TRY
 BEGIN CATCH

IF @@TRANCOUNT > 1
    ROLLBACK
 END CATCH

获得解决方案后,我面临一个新问题,即存储过程执行时它第一次运行良好,此后出现以下错误

EXECUTE之后的事务计数指示BEGIN和COMMIT语句的数量不匹配。 先前计数= 1,当前计数= 0。

我需要你的帮助。

谢谢

因为代码中有错误,所以发生了错误,并且没有发生回滚。 回滚及其检查应为:

IF @@TRANCOUNT > 0
    ROLLBACK
 END CATCH

提交后,@@ TRANCOUNT将为零。 如果发生错误,则@@ TRANCOUNT将为1。在原始代码中,它不会触发回滚,但应该触发回滚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM