Использование неявных преобразований курсора

Приложения могут запрашивать тип курсора и затем выполнить инструкцию Transact-SQL, которая не поддерживается курсорами сервера запрошенного типа. Microsoft SQL Server 2005 возвращает ошибку, которая указывает на изменение типа курсора. Это преобразование называют неявным преобразованием курсора, и иногда оно упоминается как деградация курсора.

Далее приведены факторы, которые вызывают в SQL Server неявное преобразование курсора из одного типа в другой.

Шаг Чем вызвано преобразование Только вперед Управляемый набором ключей Динамический Перейти к шагу.

1

Предложение FROM запроса не ссылается ни на какие таблицы.

Становится статичным.

Становится статичным.

Становится статичным.

Готово

2

Запрос содержит в списке выборки агрегаты: GROUP BY, UNION, DISTINCT, HAVING

Становится статичным.

Становится статичным.

Становится статичным.

Готово

3

Запрос формирует внутреннюю рабочую таблицу, например столбцы в предложении ORDER BY не покрыты индексом.

Становится набором ключей.

Становится набором ключей.

5

4

Запрос ссылается на удаленные таблицы в связанных серверах.

Становится набором ключей.

Становится набором ключей.

5

5

Запрос ссылается, по крайней мере, на одну таблицу без уникального индекса. Только курсоры Transact-SQL.

Становится статичным.

Готово

ms190641.note(ru-ru,SQL.90).gifПримечание.
Быстрые однонаправленные курсоры никогда не преобразуются.
ms190641.note(ru-ru,SQL.90).gifПримечание.
Набор ключей и динамические курсоры преобразуются, только если любая из основных базовых таблиц не имеет уникального индекса или если запрос не возвращает ключевые столбцы базовых таблиц непосредственно. Например если запрос содержит статистические функции или набор операторов.

См. также

Другие ресурсы

Implicit Cursor Conversions (ODBC)

Справка и поддержка

Получение помощи по SQL Server 2005