一尘不染

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

sql

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

当我调用更改表的存储过程并进而导致触发器运行时,并且在Management Studio中执行此操作,所有操作均按预期进行。

但是,当从Java Web应用程序中调用此存储过程时,出现错误:“名称为…的游标已存在”。

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


阅读 164

收藏
2021-05-16

共1个答案

一尘不染

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

如果必须使用游标:

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

DECLARE yourcursor CURSOR LOCAL ...
2021-05-16