sp_cursorexecute (Transact-SQL)

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

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • prepared_handle
    Es el valor de identificador de la instrucción preparada devuelto por sp_cursorprepare. El parámetro prepared_handle es un parámetro necesario que requiere un valor de entrada int.

  • cursor
    Es el identificador del cursor generado por SQL Server. cursor es un parámetro necesario que se debe proporcionar en todos los procedimientos subsiguientes que actúen en este cursor, como sp_cursorfetch

  • scrollopt
    Opción de desplazamiento. scrollopt es un parámetro opcional que requiere un valor de entrada de tipo int. El parámetro scrollopt de sp_cursorexecute tiene las mismas opciones para los valores que sp_cursoropen.

    [!NOTA]

    No se admite el valor PARAMETERIZED_STMT.

    Nota importanteImportante

    Si no se especifica ningún valor del parámetro scrollopt, el valor predeterminado es KEYSET, con independencia del valor del parámetro scrollopt especificado en sp_cursorprepare.

  • ccopt
    Opción de control de divisa. ccopt es un parámetro opcional que requiere un valor de entrada de tipo int. El parámetro ccopt de sp_cursorexecute tiene las mismas opciones para los valores que sp_cursoropen.

    Nota importanteImportante

    Si no se especifica ningún valor del parámetro ccopt, el valor predeterminado es OPTIMISTIC, con independencia del valor del parámetro ccopt especificado en sp_cursorprepare.

  • 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 forma diferente cuando se asigna como valor de entrada en lugar de como 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.

  • bound_param
    Indica el uso opcional de parámetros adicionales.

    [!NOTA]

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

Valor del código de retorno

rowcount puede devolver los siguientes valores:

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 los planes almacenados en caché se reemplazan para la memoria caché del servidor, lo que significa que se debe volver a compilar el identificador preparado que identifica la instrucción. Los valores de los parámetros ccopt y scrollopt deben coincidir con los valores enviados en la solicitud original a sp_cursorprepare.

[!NOTA]

PARAMETERIZED_STMT no debe asignarse a scrollopt.

Si no se pueden proporcionar los valores correspondientes, se provocará la recompilación de los planes, impidiéndose las operaciones de preparación y ejecución.

Consideraciones sobre RPC y TDS

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

Vea también

Referencia

sp_cursoropen (Transact-SQL)

sp_cursorfetch (Transact-SQL)

Procedimientos almacenados del sistema (Transact-SQL)