sp_cursorexecute (Transact-SQL)
Cria e popula um cursor baseado no plano de execução criado por sp_cursorprepare. Este procedimento, aliado a sp_cursorprepare, tem a mesma função de sp_cursoropen, mas divide-se em duas fases. sp_cursorexecute é invocado com a especificação de ID = 4 em um pacote TDS.
Convenções da sintaxe Transact-SQL
Sintaxe
sp_cursorexecute prepared_handle, cursor
[ , scrollopt [ OUTPUT ]
[ , ccopt [ OUTPUT ]
[ ,rowcount OUTPUT [ ,bound param] [,...n] ] ] ] ]
Argumentos
prepared_handle
É o valor de instrução de identificador da instrução preparada retornado por sp_cursorprepare. prepared_handle é um parâmetro obrigatório que requer um valor de entrada int.cursor
É o identificador de cursor gerado pelo SQL Server. cursor é um parâmetro necessário que deve ser fornecido em todos os procedimentos subsequentes que atuam no cursor; por exemplo, sp_cursorfetchscrollopt
Opção de rolagem. scrollopt é um parâmetro opcional que requer um valor de entrada int. O parâmetro sp_cursorexecute scrollopt tem as mesmas opções de valor que sp_cursoropen.Observação Não há suporte para o valor PARAMETERIZED_STMT.
Importante 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_cursorexecute ccopt tem as mesmas opções de valor que sp_cursoropen.Importante 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çã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çã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.