Compartir vía


sp_cursorexecute (Transact-SQL)

Se aplica a:SQL Server

Crea y rellena un cursor basado en el plan de ejecución creado por sp_cursorprepare. Este procedimiento, junto con sp_cursorprepare, tiene la misma función que sp_cursoropen, pero se divide en dos fases. sp_cursorexecute se invoca especificando ID = 4 en un paquete de flujo de datos tabular (TDS).

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_cursorexecute prepared_handle , cursor
    [ , scrollopt [ OUTPUT ]
    [ , ccopt [ OUTPUT ]
    [ , rowcount OUTPUT [ , bound param ] [ , ...n ] ] ] ]
[ ; ]

Argumentos

Importante

Los argumentos para los procedimientos almacenados extendidos deben especificarse en el orden específico, tal como se describe en la sección sintaxis de . Si los parámetros se escriben fuera de orden, se produce un mensaje de error.

prepared_handle

Valor de identificador de instrucción sp_cursorprepare El parámetro prepared_handle es int y no puede ser NULL.

cursor

Identificador de cursor generado por Motor de base de datos. cursor es un parámetro necesario que se debe proporcionar en todos los procedimientos posteriores que actúan sobre el cursor, como sp_cursorfetch.

scrollopt

Opción de desplazamiento. El parámetro scrollopt es int, con un valor predeterminado de NULL. El sp_cursorexecuteparámetro scrollopt tiene las mismas opciones de valor que sp_cursoropen.

No se admite el PARAMETERIZED_STMT valor.

Si no se especifica un valor scrollopt, el valor predeterminado es independientemente del KEYSET especificado en sp_cursorprepare.

ccopt

Opción de control de divisa. ccopt es un parámetro opcional que requiere un valor de entrada int . El sp_cursorexecuteparámetro ccopt tiene las mismas opciones de valor que sp_cursoropen.

Si no se especifica un valor ccoptsp_cursorprepare

rowcount

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 forma diferente cuando se asigna como un valor de entrada frente a un valor devuelto.

Como valor de entrada Como valor devuelto
Cuando AUTO_FETCH se especifica con FAST_FORWARD cursores, rowcount representa el número de filas que se van a colocar en el búfer de captura. Representa el número de filas en el conjunto de resultados. Cuando se especifica el valor scrolloptAUTO_FETCH, rowcount devuelve el número de filas que se capturaron en el búfer de captura.

bound_param

Indica el uso opcional de parámetros adicionales.

Cualquier parámetro después del quinto se pasa como parámetro de entrada al plan de instrucción.

Valores de código de retorno

rowcount devuelve los valores siguientes.

Valor Descripción
-1 Número de filas desconocido.
-n Un rellenado asincrónico está en vigor.

Comentarios

Parámetros ccopt y scrollopt

scrollopt y ccopt son útiles cuando se adelantan los planes almacenados en caché para la memoria caché del servidor, lo que significa que el identificador preparado que identifica la instrucción debe volver a compilarse. Los valores de parámetro scrollopt y ccopt deben coincidir con los valores enviados en la solicitud original a sp_cursorprepare.

PARAMETERIZED_STMT no se debe asignar a scrollopt.

Si no se proporcionan valores coincidentes, se vuelve a compilar los planes y se niegan las operaciones de preparación y ejecución.

Consideraciones sobre RPC y TDS

La marca de entrada RPC RETURN_METADATA se puede establecer en 1 para solicitar que se devuelvan los metadatos de la lista de selección de cursor en el flujo de TDS.