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_cursorexecute
ccopt имеет те же параметры значений, что 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.