Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Banco de Dados SQL no Microsoft Fabric
Compila um plano para a instrução ou lote de cursor enviado e, em seguida, cria e preenche o cursor.
sp_cursorprepexec combina as funções de sp_cursorprepare e sp_cursorexecute. Este procedimento é invocado especificando ID = 5 em um pacote de fluxo de dados tabular (TDS).
Transact-SQL convenções de sintaxe
Sintaxe
sp_cursorprepexec prepared handle OUTPUT , cursor OUTPUT , params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
[ , '@parameter_name [ , ...n ]' ]
Arguments
Importante
Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção Sintaxe . Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.
pega preparada
Um identificador de identificador preparado gerado pelo SQL Server. O parâmetro handle preparado é necessário e retorna int.
Cursor
O identificador de cursor gerado pelo SQL Server. O parâmetro cursor é um parâmetro obrigatório que deve ser fornecido em todos os procedimentos subsequentes que atuam sobre este cursor, por exemplo, sp_cursorfetch.
params
Identifica instruções parametrizadas. A definição de parâmetros de variáveis é substituída por marcadores de parâmetros na declaração. O parâmetro params é obrigatório. Quando especificado, params chama um valor de entrada ntext, nchar ou nvarchar .
Observação
Use uma cadeia de caracteres ntext como o valor de entrada quando a instrução for parametrizada e o valor da PARAMETERIZED_STMT scrollopt estiver ON.
Declaração
Define o conjunto de resultados do cursor. O parâmetro statement é necessário e chama um valor de entrada ntext, nchar ou nvarchar .
Observação
As regras para especificar o valor da instrução são as mesmas que sp_cursoropen, com a exceção de que o tipo de dados da cadeia de caracteres da instrução deve ser ntext.
Opções
Um parâmetro opcional que retorna uma descrição das colunas do conjunto de resultados do cursor. O parâmetro options requer o seguinte valor de entrada int .
| Valor | Description |
|---|---|
0x0001 |
RETURN_METADATA |
scrollopt
Opção de rolagem. O parâmetro scrollopt é opcional. Quando especificado, scrollopt requer um dos seguintes valores de entrada int .
| Valor | Description |
|---|---|
0x0001 |
CONJUNTO DE CHAVES |
0x0002 |
DINÂMICA |
0x0004 |
FORWARD_ONLY |
0x0008 |
ESTÁTICA |
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 |
Devido à possibilidade de que a opção solicitada não seja apropriada para o cursor definido pela instrução, esse parâmetro serve como entrada e saída. Nesses casos, o SQL Server atribui um tipo apropriado e modifica esse valor.
CCOPT
Opção de controle de simultaneidade. O parâmetro ccopt é opcional. Quando especificado, o parâmetro ccopt requer um dos seguintes valores de entrada int .
| Valor | Description |
|---|---|
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 |
Assim como acontece com scrollopt, o SQL Server pode atribuir um valor diferente do solicitado.
contagem de linhas
Um parâmetro opcional que significa o número de linhas de buffer de busca a serem usadas com AUTO_FETCHo . O padrão é 20 linhas. O parâmetro 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 contagem de linhas de cursores 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, rowcount retorna o número de linhas que foram buscadas no buffer de busca. |
parameter_name
Designa um ou mais nomes de parâmetros, conforme definido no parâmetro params . Deve ser fornecido um parâmetro para cada parâmetro incluído nos parâmetros. Este parâmetro não é necessário quando a instrução Transact-SQL ou lote em parâmetros não tem parâmetros definidos.
Valores de código de retorno
Se o valor de params retornar NULL, a instrução não será parametrizada.
Examples
Este exemplo demonstra o uso do sp_cursorprepexec. Ele executa uma consulta na Person tabela no banco de dados retornando todos os registros onde o AdventureWorks2025 nome é "Kirby".
USE AdventureWorks2022;
GO
DECLARE @prep_handle INT,
@cursor INT,
@scrollopt INT = 4104,
@ccopt INT = 8193,
@rowcnt INT;
EXECUTE sp_cursorprepexec
@prep_handle OUTPUT,
@cursor OUTPUT,
N'@fName nvarchar(100)',
N'SELECT FirstName, LastName FROM Person.Person WHERE FirstName = @fName',
@scrollopt,
@ccopt,
@rowcnt OUTPUT,
'Kirby';
EXECUTE sp_cursorfetch @cursor;