Я запускаю скрипт в SQL Server Management Studio 2012, который включает в себя курсор. Скрипт будет проходить через таблицу базы данных по строкам и объединять данные в отдельные строки, вставленные во вторую таблицу базы данных. Я уверен, что курсор - лучший способ обойти это.Ошибка TSQL Cursor в FETCH NEXT - Исправлено во время выполнения второго раза
У меня проблема, которая, похоже, не связана с моим кодом, потому что когда это происходит, единственным решением является просто повторное выполнение кода, и ошибка не повторится.
Я подсказала ошибку следующим образом: будет происходить
FETCH NEXT FROM @theCursor INTO @variable, @anotherVariable, @etc...
Следующая ошибка
Не удалось завершить операцию курсора, поскольку набор опций были изменены с момента курсор был объявлен.
Опять же, чрезвычайно запутанная проблема заключается в том, что это не произойдет, если я заново запустил скрипт после получения этой ошибки. Я создаю новый запрос в базе данных, и каждый раз получаю ошибку . Затем я перезапускаю сценарий, и он будет работать каждый раз, когда.
Еще одна странная вещь: ошибка возникает только после того, как эта линия FETCH
была выполнена примерно пять раз!
Я попытался поймать ошибку и просто повторно вызвать всю процедуру, но ошибка продолжает происходить. Решение только Я знаю, что нужно снова запустить сценарий с помощью команды «Выполнение» SQL Server (F5 на клавиатуре).
Я знаю, что здесь не так много возможностей для продолжения. У меня не так много, чтобы идти в особенности.
Пожалуйста, разместите соответствующий код, который определяет, открывает, считывает, закрывает и освобождает курсор. – wdosanjos
Ошибка говорит вам о проблеме - параметры «SET» были изменены. И, конечно, если вы снова запускаете одно и то же соединение, проблема не появляется снова - опции 'SET' остаются в силе до тех пор, пока что-то не изменит их на другое значение. –
Вы можете попробовать «DEALLOCATE CURSOR». –