【问题标题】:Cannot declare a cursor on SQL Server database无法在 SQL Server 数据库上声明游标
【发布时间】:2020-03-03 13:01:59
【问题描述】:

在两个不同数据库的查询中使用游标时遇到问题。当我在其中一个上执行以下查询时,它返回“1”,这意味着游标已定义,当我在第二个上执行它时,它返回“-3”,这意味着尚未声明游标。

declare c1 cursor for select distinct P_ID from tbl_Select__1
open c1
SELECT CURSOR_STATUS('global','c1')  

我想知道我是否遗漏了什么?因为第二个数据库上的查询可以声明 c1 并打开它,但仍然说游标的状态是“-3”(尚未声明)以及为什么它在第一个数据库上运行良好。

【问题讨论】:

  • 您对每个数据库都使用完全相同的代码?

标签: sql sql-server stored-procedures cursor


【解决方案1】:

刷新 SQL Server 并检查连接是否映射到特定数据库。

  • 第 1 步:连接到 SQL Server
  • 第 2 步:在一个会话中打开 DB1(例如 spid:51)
  • 第 3 步:在另一个会话中打开 DB2(比如 spid:52)

现在在两个会话中声明相同的游标并编译。

它对我有用。

【讨论】:

    猜你喜欢
    • 2021-03-14
    • 2011-12-11
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多