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).

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

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.

NotaNota
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 ]