Partilhar via


sp_cursorexecute (Transact-SQL)

Aplica-se a:SQL Server

Cria e preenche um cursor com base no plano de execução criado por sp_cursorprepare. Este procedimento, juntamente com sp_cursorprepare, tem a mesma função que sp_cursoropen, mas é dividido em duas fases. sp_cursorexecute é invocado especificando ID = 4 em um pacote de fluxo de dados tabular (TDS).

Transact-SQL convenções de sintaxe

Sintaxe

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

Argumentos

Importante

Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção de sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.

prepared_handle

A instrução preparada manipular valor retornado por sp_cursorprepare. O parâmetro prepared_handle é inte não pode ser NULL.

cursor

O identificador de cursor gerado pelo Mecanismo de Banco de Dados. cursor é um parâmetro obrigatório que deve ser fornecido em todos os procedimentos subsequentes que atuam sobre o cursor, como sp_cursorfetch.

scrollopt

Opção de rolagem. O parâmetro scrollopt é int, com um padrão de NULL. O parâmetro sp_cursorexecutescrollopt tem as mesmas opções de valor que sp_cursoropen.

O valor PARAMETERIZED_STMT não é suportado.

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

CCOPT

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

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

contagem de linhas

Um parâmetro opcional que significa o número de linhas de buffer de busca a serem usadas com AUTO_FETCH. O padrão é 20 linhas. rowcount se comporta de forma 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 FAST_FORWARD cursores, de contagem de linhas 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 scrolloptAUTO_FETCH é especificado, de contagem de linhas retorna o número de linhas que foram buscadas no buffer de busca.

bound_param

Significa o uso opcional de parâmetros extras.

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

Valores de código de retorno

rowcount retorna os seguintes valores.

Valor Descrição
-1 Número de linhas desconhecido.
-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 antecipados para o cache do servidor, o que significa que o identificador preparado que identifica a instrução deve ser recompilado. Os valores scrollopt e ccopt parâmetro devem corresponder aos valores enviados na solicitação original para sp_cursorprepare.

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

O não fornecimento de valores correspondentes resulta 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 do cursor sejam retornados no fluxo TDS.