sp_cursorprepare (Transact-SQL)
Compila la instrucción de cursor o lote en un plan de ejecución, pero no crea el cursor. sp_cursorexecute puede utilizar después la instrucción compilada. Este procedimiento, acoplado con sp_cursorexecute, tiene la misma función que sp_cursoropen, pero se divide en dos fases. sp_cursorprepare se invoca especificando el identificador 3 en un paquete de flujo de datos tabular (TDS).
Sintaxis
sp_cursorprepare
prepared_handle
OUTPUT,
params
,
stmt
,
options
[ , scrollopt[ , ccopt]]
Argumentos
prepared_handle
Identificador handle preparado y generado por SQL Server que devuelve un valor entero.Nota
prepared_handle se proporciona posteriormente a un procedimiento sp_cursorexecute para abrir un cursor. Una vez creado un identificador, existe hasta que cierre sesión o hasta que lo quite explícitamente a través de un procedimiento sp_cursorunprepare.
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. Escriba un valor NULL si la instrucción no tiene parámetros.Nota
Utilice una cadena ntext como valor de entrada cuando se parametriza stmt y el valor scrollopt PARAMETERIZED_STMT es ON.
stmt
Define el conjunto de resultados del cursor. El parámetro stmt es necesario y requiere un valor de entrada ntext, nchar o nvarchar.Nota
Las reglas para especificar el valor del parámetro 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 que el valor solicitado podría no ser adecuado 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 valor adecuado.
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 del solicitado.
Comentarios
El parámetro de estado de RPC es uno de los siguientes:
Valor |
Descripción |
---|---|
0 |
Correcto |
0x0001 |
Error |
1FF6 |
No pudo devolver los metadatos.
Nota
La razón de esto es que la instrucción no genera un conjunto de resultados; por ejemplo, es una instrucción INSERT o DDL.
|
Ejemplos
Cuando se parametriza el parámetro stmt y el valor del parámetro scrollopt PARAMETERIZED_STMT es ON, el formato de la cadena es el siguiente:
{ <nombre de variable local><tipo de datos> } [ ,…n ]
Vea también