sp_cursorexecute (Transact-SQL)
Создает и заполняет курсор на основе плана выполнения, который был создан процедурой 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.cursor
Идентификатор курсора, созданный SQL Server. cursor Аргумент является обязательным и должен передаваться при вызове всех последующих процедур, работающих с этим курсором, например sp_cursorfetchscrollopt
Параметр прокрутки. scrollopt является необязательным параметром, требующим входного значения int. Параметр scrollopt для процедуры sp_cursorexecute имеет такие же варианты значений, как и для процедуры sp_cursoropen.Примечание Значение PARAMETERIZED_STMT не поддерживается.
Важно! Если значение scrollopt не указано, то по умолчанию используется значение KEYSET независимо от значения scrollopt , указанного в процедуре sp_cursorprepare.
ccopt
Параметр управления параллелизмом. ccopt является необязательным параметром, требующим входного значения int. Параметр ccopt для процедуры sp_cursorexecute имеет такие же варианты значений, как и для процедуры sp_cursoropen.Важно! Если значение ccopt не указано, то по умолчанию используется значение OPTIMISTIC независимо от значения ccopt, указанного в процедуре sp_cursorprepare.
rowcount
Необязательный параметр, который указывает число строк буфера выборки, которые будут использоваться с AUTO_FETCH. Значение по умолчанию составляет 20 строк. Интерпретация параметра rowcount зависит от того, назначено значение как входное или как возвращаемое.Как входное значение
Как возвращаемое значение
Если параметр AUTO_FETCH задается с курсорами FAST_FORWARD, то параметр rowcount представляет число строк, которые должны быть помещены в буфер выборки.
Представляет число строк в результирующем наборе. Если для параметра scrollopt задано значение AUTO_FETCH, то параметр rowcount возвращает число строк, выбранных в буфер выборки.
bound_param
Означает необязательное использование дополнительных параметров.Примечание Все параметры после пятого передаются в план инструкции как входные.
Значение кодов возврата
Параметр rowcount может возвращать следующие значения.
Значение |
Описание |
---|---|
-1 |
Число строк неизвестно. |
-n |
Действует асинхронное заполнение. |
Замечания
Параметры scrollopt и ccopt
Параметры scrollopt и ccopt могут оказаться полезными в том случае, если кэшированные планы вытесняются в серверный кэш. Это означает, что подготовленный дескриптор, идентифицирующий инструкцию, нужно перекомпилировать. Значения параметров scrollopt и ccopt должны совпадать со значениями, переданными в исходном запросе в процедуру sp_cursorprepare.
Примечание |
---|
Параметру scrollopt не следует присваивать значение PARAMETERIZED_STMT. |
При невозможности найти совпадающие значения будет проведена повторная компиляция планов, отрицающая операции подготовки и выполнения.
Замечания по RPC и TDS
Входной флажок RPC RETURN_METADATA может быть установлен в значение 1, чтобы в потоке TDS возвращались метаданные списка выбора курсора.