sp_cursorexecute (Transact-SQL)
Aplica-se: SQL Server
Cria e preenche um cursor com base no plano de execução criado pelo 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 TDS (fluxo de dados tabulares).
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_cursorexecute prepared_handle , cursor
[ , scrollopt [ OUTPUT ]
[ , ccopt [ OUTPUT ]
[ , rowcount OUTPUT [ , bound param ] [ , ...n ] ] ] ]
[ ; ]
Argumentos
prepared_handle
O valor do identificador da instrução preparada retornado por sp_cursorprepare
. O parâmetro prepared_handle é int e não pode ser NULL
.
cursor
O identificador de cursor gerado pelo Mecanismo de Banco de Dados. cursor é um parâmetro necessá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 sp_cursorexecute
parâmetro scrollopt tem as mesmas opções de valor que sp_cursoropen
.
Não há suporte para o PARAMETERIZED_STMT
valor.
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 sp_cursorexecute
parâmetro ccopt tem as mesmas opções de valor que sp_cursoropen
.
Se um valor ccopt não for especificado, o valor padrão será OPTIMISTIC
independentemente do valor 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 . O padrão é 20 linhas. rowcount se comporta de forma diferente quando atribuído como um valor de entrada versus um valor retornado.
Como valor de entrada | Como valor de retorno |
---|---|
Quando AUTO_FETCH é especificado com FAST_FORWARD cursores, 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 scrollopt AUTO_FETCH é especificado, rowcount 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 do código de retorno
rowcount retorna 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 preemptados para o cache do servidor, o que significa que o identificador preparado que identifica a instrução deve ser recompilado. Os valores dos parâmetros scrollopt e ccopt devem corresponder aos valores enviados na solicitação original para sp_cursorprepare
.
PARAMETERIZED_STMT
não deve ser atribuído a scrollopt.
A falha em fornecer 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.