Compartilhar via


sp_cursorprepare (Transact-SQL)

Compila a instrução de cursor ou processa em lotes em um plano de execução, mas não cria o cursor. A instrução compilada pode ser usada posteriormente por sp_cursorexecute. Este procedimento, aliado a sp_cursorexecute, tem a mesma função de sp_cursoropen,, mas divide-se em duas fases. sp_cursorprepare é invocado com a especificação de ID = 3 em um pacote TDS.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

sp_cursorprepare prepared_handle OUTPUT, params , stmt , options
    [ , scrollopt [ , ccopt ] ]

Argumentos

  • prepared_handle
    Um identificador handle preparado e gerado pelo SQL Server que retorna um valor inteiro.

    ObservaçãoObservação

    prepared_handle é fornecido subsequentemente a um procedimento sp_cursorexecute para abrir um cursor. Quando um identificador é criado, ele existe até que você faça logoff ou remova-o explicitamente por meio de um procedimento sp_cursorunprepare.

  • params
    Identifica instruções parametrizadas. A definição params de variáveis é substituída para marcadores de parâmetros na instrução. params é um parâmetro necessário que chama um valor de entrada ntext, nchar ou nvarchar . Insira um valor NULL se a instrução não for parametrizada.

    ObservaçãoObservação

    Use uma cadeia de caracteres ntext como o valor de entrada quando stmt for parametrizado e o valor scrollopt PARAMETERIZED_STMT for ON.

  • stmt
    Define o conjunto de resultados do cursor. O parâmetro stmt é obrigatório e requer um valor de entrada ntext, nchar ou nvarchar.

    ObservaçãoObservação

    As regras para especificar o valor stmt são iguais às de sp_cursoropen, com a exceção de que o tipo de dados string stmt deve ser ntext.

  • options
    Um parâmetro opcional que retorna uma descrição das colunas do conjunto de resultados de cursor. options exige o valor de entrada int a seguir.

    Valor

    Descrição

    0x0001

    RETURN_METADATA

  • scrollopt
    Opção de rolagem. scrollopt é um parâmetro opcional que exige um dos valores de entrada int a seguir.

    Valor

    Descrição

    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

    Como o valor solicitado talvez não seja apropriado para o cursor definido por stmt, este parâmetro serve como entrada e saída. Nesses casos, o SQL Server atribui um valor apropriado.

  • ccopt
    Opção de controle de simultaneidade. ccopt é um parâmetro opcional que exige um dos valores de entrada int a seguir.

    Valor

    Descrição

    0x0001

    READ_ONLY

    0x0002

    SCROLL_LOCKS (anteriormente conhecido como LOCKCC)

    0x0004

    OPTIMISTIC (anteriormente conhecido como OPTCC)

    0x0008

    OPTIMISTIC (anteriormente conhecido como OPTCCVAL)

    0x2000

    ALLOW_DIRECT

    0x4000

    UPDT_IN_PLACE

    0x8000

    CHECK_ACCEPTED_OPTS

    0x10000

    READ_ONLY_ACCEPTABLE

    0x20000

    SCROLL_LOCKS_ACCEPTABLE

    0x40000

    OPTIMISTIC_ACCEPTABLE

    0x80000

    OPTIMISITC_ACCEPTABLE

    Como ocorre com scrollpt, o SQL Server pode atribuir um valor diferente do solicitado.

Comentários

O parâmetro de status RPC é um dos seguintes:

Valor

Descrição

0

Êxito

0x0001

Falha

1FF6

Não foi possível retornar metadados.

ObservaçãoObservação

A razão para isso é que a instrução não gera um conjunto de resultados; por exemplo, é uma instrução INSERT ou DDL.

Exemplos

Quando stmt é parametrizado e o valor scrollopt PARAMETERIZED_STMT é ON, o formato da cadeia de caracteres é o seguinte:

{ <local variable name> <data type> } [ ,…n ]

Consulte também

Referência

sp_cursorexecute (Transact-SQL)

sp_cursoropen (Transact-SQL)

sp_cursorunprepare (Transact-SQL)

Procedimentos armazenados do sistema (Transact-SQL)