Поделиться через


sp_cursorexecute (Transact-SQL)

Область применения: SQL Server

Создает и заполняет курсор на основе плана выполнения, созданного с помощью sp_cursorprepare. Эта процедура, в сочетании с sp_cursorprepare, имеет ту же функцию, что sp_cursoropenи , но разделена на два этапа. sp_cursorexecute вызывается путем ID = 4 указания в пакете табличного потока данных (TDS).

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_cursorexecute prepared_handle , cursor
    [ , scrollopt [ OUTPUT ]
    [ , ccopt [ OUTPUT ]
    [ , rowcount OUTPUT [ , bound param ] [ , ...n ] ] ] ]
[ ; ]

Аргументы

prepared_handle

Значение дескриптора подготовленной инструкции, возвращаемое sp_cursorprepare. Параметр prepared_handle является int и не может быть NULL.

курсор

Идентификатор ядро СУБД созданного курсора. курсор является обязательным параметром, который должен быть предоставлен во всех последующих процедурах, которые действуют на курсоре, например sp_cursorfetch.

scrollopt

Параметр прокрутки. Параметр scrollopt имеет значение int с значением по умолчаниюNULL. Параметр sp_cursorexecute scrollopt имеет те же параметры значения, что sp_cursoropenи параметр.

Значение PARAMETERIZED_STMT не поддерживается.

Если значение прокрутки не указано, значение KEYSET по умолчанию независимо от значения scrollopt, указанного вsp_cursorprepare.

ccopt

Параметр управления параллелизмом. ccopt — это необязательный параметр, требующий входного значения int . Параметр sp_cursorexecuteccopt имеет те же параметры значений, что sp_cursoropenи параметр.

Если значение ccopt не указано, значение OPTIMISTIC по умолчанию независимо от значения ccopt, указанного в sp_cursorprepare.

строка

Необязательный параметр, указывающий количество строк буфера получения для использования AUTO_FETCH. Значение по умолчанию составляет 20 строк. Строка ведет себя по-разному при назначении в качестве входного значения и возвращаемого значения.

Как входное значение Как возвращаемое значение
При AUTO_FETCH указании курсоров FAST_FORWARD строка представляет количество строк, которые нужно поместить в буфер получения. Представляет число строк в результирующем наборе. Если задано значение scrolloptAUTO_FETCH, строка возвращает количество строк, которые были извлекались в буфер получения.

bound_param

Означает необязательное использование дополнительных параметров.

Все параметры после пятого передаются в план инструкции как входные.

Значения кода возврата

rowcount возвращает следующие значения.

значение Описание
-1 Число строк неизвестно.
-n Действует асинхронное заполнение.

Замечания

Параметры scrollopt и ccopt

scrollopt и ccopt полезны, если кэшированные планы преумножены для кэша сервера, то есть подготовленный дескриптор , определяющий инструкцию, должен быть перекомпилирован. Значения параметров scrollopt и ccopt должны соответствовать значениям, отправленным в исходном запросе sp_cursorprepare.

PARAMETERIZED_STMTне следует назначать прокрутке.

Неспособность предоставить соответствующие значения приводит к перекомпиляции планов, отрицая операции подготовки и выполнения.

Замечания по RPC и TDS

Флаг ввода RPC RETURN_METADATA можно задать для 1 запроса того, что метаданные списка выбора курсора возвращаются в потоке TDS.