sp_cursorexecute (Transact-SQL)

Применимо к:SQL Server

Создает и заполняет курсор на основе плана выполнения, который был создан процедурой sp_cursorprepare. Эта процедура, в сочетании с sp_cursorprepare, имеет ту же функцию, что и sp_cursoropen, но разделена на два этапа. sp_cursorexecute вызывается путем указания идентификатора =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.

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

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

Заметка

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

Внимание

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

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

Внимание

Если значение ccopt не указано, значение по умолчанию — ОПТИМИСТическое независимо от значения ccopt, указанного в sp_cursorprepare.

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

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

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

Заметка

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

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

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

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

Замечания

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

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

Заметка

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

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

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

Входной флажок RPC RETURN_METADATA может быть установлен в значение 1, чтобы в потоке TDS возвращались метаданные списка выбора курсора.

См. также

sp_cursoropen (Transact-SQL)
sp_cursorfetch (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)