sp_cursorprepexec (Transact-SQL)
Compila um plano para a instrução de cursor ou lote enviado e, em seguida, cria e popula o cursor. sp_cursorprepexec combina as funções de sp_cursorprepare e sp_cursorexecute. Esse procedimento é invocado pela especificação de ID = 5 em um pacote TDS.
Convenções da sintaxe Transact-SQL
Sintaxe
sp_cursorprepexec prepared handle OUTPUT, cursor OUTPUT, params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
Argumentos
prepared handle
É um identificador de handle preparado e gerado pelo SQL Server. prepared handle é necessário e retorna 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 nesse cursor, por exemplo, sp_cursorfetch.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 .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.
statement
Define o conjunto de resultados do cursor. O parâmetro statement é exigido e chama 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
Devido à possibilidade de a opção solicitada não ser apropriado para o cursor definido por <stmt>, este 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. 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.
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.
Valores de códigos de retorno
Se params retornar um valor NULL, a instrução não será parametrizada.
Consulte também
Referência
sp_cursorexecute (Transact-SQL)