sp_cursorprepare (Transact-SQL)
Compila a instrução de cursor ou processa em lotes em um plano de execução, mas não cria o cursor. A instrução compilada pode ser usada posteriormente por sp_cursorexecute. Este procedimento, aliado a sp_cursorexecute, tem a mesma função de sp_cursoropen,, mas divide-se em duas fases. sp_cursorprepare é invocado com a especificação de ID = 3 em um pacote TDS.
Convenções da sintaxe Transact-SQL
Sintaxe
sp_cursorprepare prepared_handle OUTPUT, params , stmt , options
[ , scrollopt [ , ccopt ] ]
Argumentos
prepared_handle
Um identificador handle preparado e gerado pelo SQL Server que retorna um valor inteiro.Observação prepared_handle é fornecido subsequentemente a um procedimento sp_cursorexecute para abrir um cursor. Quando um identificador é criado, ele existe até que você faça logoff ou remova-o explicitamente por meio de um procedimento sp_cursorunprepare.
params
Identifica instruções parametrizadas. A definição params de variáveis é substituída para marcadores de parâmetros na instrução. params é um parâmetro necessário que chama um valor de entrada ntext, nchar ou nvarchar . Insira um valor NULL se a instrução não for parametrizada.Observação Use uma cadeia de caracteres ntext como o valor de entrada quando stmt for parametrizado e o valor scrollopt PARAMETERIZED_STMT for ON.
stmt
Define o conjunto de resultados do cursor. O parâmetro stmt é obrigatório e requer um valor de entrada ntext, nchar ou nvarchar.Observação As regras para especificar o valor stmt são iguais às de sp_cursoropen, com a exceção de que o tipo de dados string stmt deve ser ntext.
options
Um parâmetro opcional que retorna uma descrição das colunas do conjunto de resultados de cursor. options exige o valor de entrada int a seguir.Valor
Descrição
0x0001
RETURN_METADATA
scrollopt
Opção de rolagem. scrollopt é um parâmetro opcional que exige um dos valores de entrada int a seguir.Valor
Descrição
0x0001
KEYSET
0x0002
DYNAMIC
0x0004
FORWARD_ONLY
0x0008
STATIC
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
Como o valor solicitado talvez não seja apropriado para o cursor definido por stmt, este parâmetro serve como entrada e saída. Nesses casos, o SQL Server atribui um valor apropriado.
ccopt
Opção de controle de simultaneidade. ccopt é um parâmetro opcional que exige um dos valores de entrada int a seguir.Valor
Descrição
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
Como ocorre com scrollpt, o SQL Server pode atribuir um valor diferente do solicitado.
Comentários
O parâmetro de status RPC é um dos seguintes:
Valor |
Descrição |
||
---|---|---|---|
0 |
Êxito |
||
0x0001 |
Falha |
||
1FF6 |
Não foi possível retornar metadados.
|
Exemplos
Quando stmt é parametrizado e o valor scrollopt PARAMETERIZED_STMT é ON, o formato da cadeia de caracteres é o seguinte:
{ <local variable name> <data type> } [ ,…n ]
Consulte também
Referência
sp_cursorexecute (Transact-SQL)