我在存储过程中创建了一个游标,并在该游标中调用另一个存储过程。在该存储过程中,我创建了另一个同名的游标。在运行主存储过程时,出现了一个错误名为的游标已存在我很困惑,我用相同的但在两个不同的存储过程中创建了游标,那么为什么会抛出这个错误呢?
628mspwn1#
经过一番研究,我找到了它的根源。当声明游标时,我没有指定游标的作用域是批处理的本地作用域。我检查了我的数据库属性,其中cursor default scope设置为global,因此在运行存储过程时出现了这个错误。因此,要解决此错误,有两种选择:定义本地游标。只需将关键字local放在光标后面:
declare MyCursor CURSOR LOCAL FOR ...
将courser的默认范围定义为数据库的本地范围。数据库>右键单击>属性
1条答案
按热度按时间628mspwn1#
经过一番研究,我找到了它的根源。
当声明游标时,我没有指定游标的作用域是批处理的本地作用域。我检查了我的数据库属性,其中cursor default scope设置为global,因此在运行存储过程时出现了这个错误。
因此,要解决此错误,有两种选择:
定义本地游标。只需将关键字local放在光标后面:
将courser的默认范围定义为数据库的本地范围。
数据库>右键单击>属性