Partilhar via


sp_cursorexecute (Transact-SQL)

Cria e popula um cursor baseado no plano de execução criado por sp_cursorprepare. Este procedimento, associado a sp_cursorprepare, tem a mesma função que sp_cursoropen, mas é dividido em duas fases. sp_cursorexecute é invocado com a especificação de ID = 4 em um pacote TDS.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

        sp_cursorexecute 
        prepared_handle
        , 
        cursor
        
        
            [ , scrollopt[ OUTPUT ]
    [ , ccopt[ OUTPUT ]
    [ ,rowcount OUTPUT [ ,bound param][,...n]]]]]

Argumentos

  • prepared_handle
    É o valor de identificador da instrução preparada retornado por sp_cursorprepare. prepared_handle é um parâmetro obrigatório que chama um valor de entrada int.

  • cursor
    É o identificador de cursor gerado pelo SQL Server. cursor é um parâmetro obrigatório que deve ser fornecido em todos os procedimentos subsequentes que atuam no cursor, por exemplo, sp_cursorfetch.

  • scrollopt
    Opção de rolagem. scrollopt é um parâmetro opcional que requer um valor de entrada int. O parâmetro sp_cursorexecutescrollopt tem as mesmas opções de valor que sp_cursoropen.

    ObservaçãoObservação

    Não há suporte para o valor PARAMETERIZED_STMT.

    Observação importanteImportante

    Se um valor scrollopt não for especificado, o valor padrão será KEYSET, independentemente do valor scrollopt especificado em sp_cursorprepare.

  • ccopt
    Opção de controle de moeda. ccopt é um parâmetro opcional que requer um valor de entrada int. O parâmetro sp_cursorexecuteccopt tem as mesmas opções de valor que sp_cursoropen.

    Observação importanteImportante

    Se um valor ccopt não for especificado, o valor padrão será OPTIMISTIC, independentemente do valor ccopt especificado em sp_cursorprepare.

  • rowcount
    É um parâmetro opcional que significa o número de linhas de buffer de busca a ser usado com AUTO_FETCH. O padrão é 20 linhas. rowcount se comporta de modo diferente quando atribuído como um valor de entrada versus um valor de retorno.

    Como valor de entrada

    Como valor de retorno

    Quando AUTO_FETCH é especificado com cursores FAST_FORWARD, rowcount representa o número de linhas a serem colocadas no buffer de busca.

    Representa o número de linhas no conjunto de resultados. Quando o valor AUTO_FETCH scrollopt é especificado, rowcount retorna o número de linhas que foram buscadas no buffer de busca.

  • bound_param
    Significa o uso opcional de parâmetros adicionais.

    ObservaçãoObservação

    Quaisquer parâmetros após o quinto são passados para o plano de instrução como parâmetros de entrada.

Valor de retorno do código

rowcount pode retornar os valores a seguir.

Valor

Descrição

-1

Número de linhas desconhecidas.

-n

Uma população assíncrona está em vigor.

Comentários

Parâmetros scrollopt e ccopt

scrollopt e ccopt são úteis quando os planos armazenados em cache são adquiridos por preempção para o cache de servidor, indicando que o identificador preparado que identifica a instrução deve ser recompilado. Os valores de parâmetros scrollopt e ccopt devem corresponder aos valores enviados na solicitação original a sp_cursorprepare.

ObservaçãoObservação

PARAMETERIZED_STMT não deve ser atribuído a scrollopt.

A falha ao fornecer valores correspondentes resultará na recompilação dos planos, negando as operações de preparação e execução.

Considerações sobre RPC e TDS

O sinalizador de entrada RPC RETURN_METADATA pode ser definido como 1 para solicitar que os metadados da lista de seleção de cursor sejam retornados no fluxo TDS.