sp_cursorprepare (Transact-SQL)
Se aplica a:SQL Server
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, junto con sp_cursorexecute, tiene la misma función que sp_cursoropen, pero se divide en dos fases. sp_cursorprepare se invoca especificando id. = 3 en un paquete de flujo de datos tabular (TDS).
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_cursorprepare prepared_handle OUTPUT , params , stmt , options
[ , scrollopt [ , ccopt ] ]
[ ; ]
Argumentos
prepared_handle
Identificador de identificador preparado generado por SQL Server que devuelve un valor entero.
Nota
prepared_handle se proporciona posteriormente a un procedimiento de 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 de parámetros de las variables se sustituye por los marcadores de parámetro en la instrucción . params es un parámetro necesario que llama a para un valor de entrada ntext, nchar o nvarchar . Escriba un valor NULL si la instrucción no tiene parámetros.
Nota
Use una cadena ntext como valor de entrada cuando stmt esté parametrizado y el valor de scrollopt PARAMETERIZED_STMT sea ON.
stmt
Define el conjunto de resultados del cursor. El parámetro stmt es necesario y llama a para un valor de entrada ntext, nchar o nvarchar .
Nota
Las reglas para especificar el valor stmt son las mismas que las de sp_cursoropen, con la excepción de que el tipo de datos stmt string debe ser ntext.
options
Parámetro opcional que devuelve una descripción de las columnas del conjunto de resultados del cursor. las opciones requieren el siguiente valor de entrada int .
Valor | Descripción |
---|---|
0x0001 | RETURN_METADATA |
scrollopt
Opción de desplazamiento. 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 |
Dado que el valor solicitado podría no ser adecuado para el cursor definido por stmt, este parámetro actúa como entrada y 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 | OPTIMISTA (anteriormente conocido 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 |
Al igual que 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: El motivo de esto es que la instrucción no genera un conjunto de resultados; por ejemplo, es una instrucción INSERT o DDL. |
Ejemplos
A continuación se muestra un ejemplo de uso de sp_cursorprepare y sp_cursorexecute
declare @handle int , @p5 int, @p6 int
exec sp_cursorprepare @handle OUTPUT,
N'@dbid int',
N'select * from sys.databases where database_id < @dbid',
1,
@p5 output,
@p6 output
declare @p1 int
set @P1 = @handle
declare @p2 int
declare @p3 int
declare @p4 int
set @P6 = 4
exec sp_cursorexecute @p1, @p2 OUTPUT, @p3 output , @p4 output, @p5 OUTPUT, @p6
exec sp_cursorfetch @P2
exec sp_cursorunprepare @handle
exec sp_cursorclose @p2
Cuando stmt se parametriza y el valor de scrollopt PARAMETERIZED_STMT es ON, el formato de la cadena es el siguiente:
{ <nombre> de variable local**<tipo> de datos } [ ,... n ]
Consulte también
sp_cursorexecute (Transact-SQL)
sp_cursoropen (Transact-SQL)
sp_cursorunprepare (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de