Невозможно объявить курсор в базе данных SQL Server - PullRequest
0 голосов
/ 07 ноября 2019

У меня проблема с использованием курсора в запросах к двум различным базам данных. Когда я выполняю следующий запрос для одного из них, он возвращает «1», что означает, что курсор определен, а когда я выполняю его для второго, он возвращает «-3», что означает, что курсор не был объявлен.

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

Мне интересно, что-то мне не хватает? Потому что запрос во второй базе данных может объявить c1 и открыть его, но при этом сказать, что состояние курсора - «-3» (не было объявлено) и почему он отлично работает с первой.

1 Ответ

0 голосов
/ 07 ноября 2019

Обновите SQL Server и убедитесь, что соединение сопоставлено с конкретной базой данных.

  • Шаг 1. Подключение к SQL Server
  • Шаг 2. Открытие DB1 за один сеанс (скажем, spid: 51)
  • Шаг 3. Открытие DB2 в другом сеансе(скажем, spid: 52)

Теперь объявляем один и тот же курсор в обеих сессиях и компилируем.

Это работает для меня.

...