sp_cursorprepexec (Transact-SQL)

Компилирует план для переданной инструкции или пакета курсора, после чего создает и заполняет курсор. Процедура sp_cursorprepexec сочетает функции sp_cursorprepare и sp_cursorexecute. Для вызова этой процедуры необходимо задать ID = 5 в пакете потока табличных данных (TDS).

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

        sp_cursorprepexec 
        prepared handle
         OUTPUT, 
        cursor
         OUTPUT, 
        params
         , 
        statement
         , 
        options
            [ , scrollopt [ , ccopt [ , rowcount ] ] ]

Аргументы

  • prepared handle
    Сформированный системой SQL Server идентификатор подготовленного десриптора. Параметр prepared handle является обязательным и возвращает значение типа int. 

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

  • params
    Указывает параметризованные инструкции. Определение переменных params подставляется вместо маркеров параметров в инструкции. Параметр params является обязательным и требует входного значения типа ntext, nchar или nvarchar .

    ПримечаниеПримечание

    Используйте в качестве входного значения строку ntext, если параметр stmt параметризован и значение PARAMETERIZED_STMT scrollopt равно ON.

  • statement
    Определяет результирующий набор курсора. Параметр statement обязателен и требует входного значения типа ntext, nchar или nvarchar.

    ПримечаниеПримечание

    При указании значения stmt действуют те же правила, что и для sp_cursoropen, с той разницей, что строка stmt должна иметь тип данных ntext.

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

    Значение

    Описание

    0x0001

    RETURN_METADATA

  • scrollopt
    Параметр прокрутки. Параметр scrollopt является необязательным и требует одного из следующих входных значений типа int.

    Значение

    Описание

    0x0001

    KEYSET

    0x0002

    DYNAMIC

    0x0004

    FORWARD_ONLY

    0x0008

    STATIC

    0x10

    FAST_FORWARD

    0x1000

    PARAMETERIZED_STMT

    0x2000

    AUTO_FETCH

    0x4000

    AUTO_CLOSE

    0x8000

    CHECK_ACCEPTED_TYPES

    0x10000

    KEYSET_ACCEPTABLE

    0x20000

    DYNAMIC_ACCEPTABLE

    0x40000

    FORWARD_ONLY_ACCEPTABLE

    0x80000

    STATIC_ACCEPTABLE

    0x100000

    FAST_FORWARD_ACCEPTABLE

    Поскольку существует возможность, что запрошенный параметр не будет соответствовать курсору, определяемому параметром <stmt>, этот параметр используется как входной и как выходной. В таких случаях SQL Server назначает соответствующий тип и изменяет это значение.

  • ccopt
    Параметр управления параллелизмом. Параметр ccopt является необязательным и требует одного из следующих входных значений типа int.

    Значение

    Описание

    0x0001

    READ_ONLY

    0x0002

    SCROLL_LOCKS (прежнее название — LOCKCC)

    0x0004

    OPTIMISTIC (прежнее название — OPTCC)

    0x0008

    OPTIMISTIC (прежнее название — OPTCCVAL)

    0x2000

    ALLOW_DIRECT

    0x4000

    UPDT_IN_PLACE

    0x8000

    CHECK_ACCEPTED_OPTS

    0x10000

    READ_ONLY_ACCEPTABLE

    0x20000

    SCROLL_LOCKS_ACCEPTABLE

    0x40000

    OPTIMISTIC_ACCEPTABLE

    0x80000

    OPTIMISTIC_ACCEPTABLE

    Как и в случае с параметром scrollpt, SQL Server может назначить не то значение, которое запрашивалось.

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

    Как входное значение

    Как возвращаемое значение

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

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

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

Если params возвращает значение NULL, то инструкция не параметризована.