sp_cursorprepexec (Transact-SQL)
Compila un plan para la instrucción de cursor enviada o lote. Después, crea y rellena el cursor. sp_cursorprepexec combina las funciones de sp_cursorprepare y sp_cursorexecute. Estos procedimientos se invocan especificando el identificador 5 en un paquete de flujo de datos tabular (TDS).
Sintaxis
sp_cursorprepexec
prepared handle
OUTPUT,
cursor
OUTPUT,
params
,
statement
,
options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
Argumentos
prepared handle
Es un identificador de handle preparado, que genera SQL Server. prepared handle es necesario y devuelve int.cursor
Es el identificador del cursor generado por SQL Server. El parámetro cursor es un parámetro necesario que se debe proporcionar en todos los procedimientos posteriores que actúen en este cursor, por ejemplo, sp_cursorfetch.params
Identifica instrucciones con parámetros. La definición del parámetro params de variables se sustituye para los marcadores de parámetros en la instrucción. El parámetro params es un parámetro necesario que requiere un valor de entrada ntext, nvarchar o nchar.Nota
Utilice una cadena ntext como valor de entrada cuando se parametriza stmt y el valor scrollopt PARAMETERIZED_STMT es ON.
statement
Define el conjunto de resultados del cursor. El parámetro statement es necesario y requiere un valor de entrada ntext, nchar o nvarchar.Nota
Las reglas para especificar el valor de stmt son las mismas que para sp_cursoropen, con la excepción de que el tipo de datos de cadena del parámetro stmt debe ser ntext.
options
Parámetro opcional que devuelve una descripción de las columnas del conjunto de resultados del cursor. El parámetro options requiere el siguiente valor de entrada int.Valor
Descripción
0x0001
RETURN_METADATA
scrollopt
Opción de desplazamiento. El parámetro scrollopt es un parámetro opcional que requiere uno de los siguientes valores de entrada int.Valor
Descripción
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
Debido a la posibilidad de que la opción solicitada no sea adecuada para el cursor definido a través de <stmt>, este parámetro actúa tanto de entrada como de salida. En casos como este, SQL Server asigna un tipo adecuado y modifica este valor.
ccopt
Opción de control de simultaneidad. ccopt es un parámetro opcional que requiere uno de los siguientes valores de entrada int.Valor
Descripción
0x0001
READ_ONLY
0x0002
SCROLL_LOCKS (conocido anteriormente como LOCKCC)
0x0004
OPTIMISTIC (conocido anteriormente como OPTCC)
0x0008
OPTIMISTIC (conocido anteriormente 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 con scrollpt, SQL Server puede asignar un valor diferente al solicitado.
rowcount
Es un parámetro opcional que indica el número de filas del búfer de captura que se van a usar con AUTO_FETCH. El valor predeterminado es 20 filas. rowcount se comporta de manera diferente cuando se asigna como un valor de entrada contra un valor devuelto.Como valor de entrada
Como valor devuelto
Cuando AUTO_FETCH se especifica con cursores FAST_FORWARD, rowcount representa el número de filas que se colocarán en el búfer de captura.
Representa el número de filas en el conjunto de resultados. Cuando se especifica el valor AUTO_FETCH de scrollopt, rowcount devuelve el número de filas que se colocaron en el búfer de captura.
Valores del código de retorno
Si params devuelve un valor NULL, la instrucción no se parametriza.