java - 名称为 ... 的游标已存在 - SQL Server 2008

标签 java sql sql-server tsql database-cursor

我有一个触发器,用于在对表进行更改时执行一些审计任务。在这个触发器中有一个 WHILE 循环,在循环中有一个游标,在循环的下一次迭代之前声明、使用、关闭然后释放。

当我调用一个存储过程来更改表并反过来导致触发器运行时,我从 Management Studio 中执行此操作,一切都按预期进行。

但是,当从我的 Java Web 应用程序中调用此存储过程时,我收到错误消息:“名称为 ... 的游标已存在”。

为什么这个存储过程在我手动执行时可以工作,而在从 Web 应用程序运行时却不能工作?

最佳答案

听起来您可能正在使用 GLOBAL 游标,这可能会导致此类问题。

如果必须使用游标:

如果可以,请在所有代码中使用 LOCAL 游标。 例如使用“LOCAL”关键字声明游标,如下所示:

DECLARE yourcursor CURSOR LOCAL ...

关于java - 名称为 ... 的游标已存在 - SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6735719/

相关文章:

java - JPA @Column 注释创建评论/描述

sql-server - 如何转换 xlsx 文件中的数据,删除单元格中的合并并转置某些列以使用 SSIS 在 SQL Server 中提取数据?

c# - 使用 Entity Framework 同步记录

sql-server - EF6/Glimpse - 与命令执行相比,连接需要很多时间

java - Apache-POI 在 Excel 中设置值,但另一个单元格的公式无法使用该值,直到我在处理条中手动按 Enter 键

java - Log4J 不写入文件

java - 在Java中,有没有办法重新捕获或列出以前捕获的异常

sql - SQL UPDATE中的str_replace?

java - '@>'符号在postgresql中是什么意思?

java - 如何在 Android 中的 Firestore 数据库中获取文档 ID 或名称以传递给另一个 Activity ?