当前位置: 首页 > 面试题库 >

EXECUTE之后的事务计数表明缺少COMMIT或ROLLBACK TRANSACTION语句-SQL Server 2005

乐钱青
2023-03-14
问题内容

我从SQL Server 2005的应用程序中获取错误,如下所示

“ EXECUTE之后的事务计数表明缺少COMMIT或ROLLBACK TRANSACTION语句。先前的计数= 1,当前的计数= 0”

我如何找到引发此错误的阶段?

如何找到丢失的事务或未提交或回滚的存储过程?


问题答案:

我认为没有什么丢失的。这可能是一个内部存储过程,该内部html" target="_blank">存储过程从事务内部进行调用(TRANCOUNT = 1),开始其自身的事务(TRANCOUNT =
2),然后将其回滚。嗯,这意味着要回滚,但回滚会影响所有事务,而不仅是最内部的事务,因此该过程会破坏执行流程。

查找位置的方法取决于可用的工具/技能。更好的方法是使用SQL事件探查器,该探查器显示应用程序针对服务器执行的所有命令。找出最外层的存储过程,并遍历其代码以查找其他任何过程调用。



 类似资料:
  • 我有一个存储过程,它将数据馈送到,并从获取值,并调用将馈送表2的第二个存储过程。 但是当我调用第二个存储过程时: 我得到以下错误: “执行”之后的事务计数表示 BEGIN 和“提交”语句的数量不匹配。上一个计数 = 1,当前计数 = 0。 我已经阅读了其他此类问题的答案,无法找到提交计数究竟在哪里搞砸了。

  • 我一直得到一个丢失的返回语句错误,但我不知道在哪里。每次跟随代码,我都感觉到至少有一个if语句提供了return语句。 代码:

  • 问题内容: 为什么这给了我一个丢失的退货陈述错误?每个if / else都有返回值,最后一个括号出现错误 问题答案: 每个语句都在一个语句内。虽然从逻辑上讲这是不可能的,但是当所有评估都不为真时,编译器需要返回。 我建议: 我认为,此解决方案可解决编译器问题并稍微提高可读性。 或者,有以下解决方案: 引发异常将使你可以退出方法而无需返回任何信息……因为可以说,如果到达最后一个,显然会出错。

  • 我有以下代码 null 我错过了什么?

  • 我是数据库领域的初学者,我的任务是编写一个在嵌套表中添加记录的过程,这是。我写的sql文件: 当我跑步的时候。sql文件我收到一条警告消息(使用编译错误创建的过程)当我运行时(显示错误过程TT1_ajute_PERSON_DANS_ALBUM;)我得到错误(忽略语句)和(缺少表达式) 我已经在谷歌上搜索过这个问题,大多数情况下都是因为打字错误,但我不认为这是我的情况!以下是表(TT1_相册)和(T

  • 我有一个二维布尔数组“poorSignal”,需要编写一个返回网格的方法,如果数组上的一个点为真,则显示X,如果为假,则显示O。这是我的代码: 当我编译时,它在方法的最后一行给出了“missing return statement”。我也不确定“return”\n在打印阵列时是否可以添加新行。 这是一个赋值问题,所以我不能直接打印它,也不能只打印布尔值——它必须是一个生成网格的方法。