我从SQL Server 2005的应用程序中获取错误,如下所示
“ EXECUTE之后的事务计数表明缺少COMMIT或ROLLBACK TRANSACTION语句。先前的计数= 1,当前的计数= 0”
我如何找到引发此错误的阶段?
如何找到丢失的事务或未提交或回滚的存储过程?
我认为没有什么丢失的。这可能是一个内部存储过程,该内部存储过程从事务内部进行调用(TRANCOUNT = 1),开始其自身的事务(TRANCOUNT = 2),然后将其回滚。嗯,这意味着要回滚,但回滚会影响所有事务,而不仅是最内部的事务,因此该过程会破坏执行流程。
查找位置的方法取决于可用的工具/技能。更好的方法是使用SQL事件探查器,该探查器显示应用程序针对服务器执行的所有命令。找出最外层的存储过程,并遍历其代码以查找其他任何过程调用。