Condividi tramite


sp_cursorprepare (Transact-SQL)

Compila il batch o l'istruzione del cursore in un piano di esecuzione, ma non crea il cursore. L'istruzione compilata può essere utilizzata in un secondo momento da sp_cursorexecute. Questa procedura, associata a sp_cursorexecute, ha la stessa funzione di sp_cursoropen, ma è suddivisa in due fasi. sp_cursorprepare viene richiamata specificando ID = 3 in un pacchetto del flusso TDS.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

sp_cursorprepare prepared_handle OUTPUT, params , stmt , options
    [ , scrollopt [ , ccopt ] ]

Argomenti

  • prepared_handle
    Identificatore dell'handle preparato generato da SQL Server che restituisce un valore intero.

    [!NOTA]

    prepared_handle viene fornito successivamente a una routine sp_cursorexecute per aprire un cursore. Dopo essere stato creato, un handle esiste finché non si esegue la disconnessione o finché non viene rimosso in modo esplicito tramite la routine sp_cursorunprepare.

  • params
    Identifica le istruzioni con parametri. La definizione params delle variabili viene sostituita per i marcatori di parametro nell'istruzione. params è un parametro obbligatorio che richiede un valore di input ntext, nchar o nvarchar . Immettere un valore NULL se l'istruzione non è con parametri.

    [!NOTA]

    Utilizzare una stringa ntext come valore di input se stmt è con parametri e il valore PARAMETERIZED_STMT di scrollopt è ON.

  • stmt
    Definisce il set di risultati del cursore. Il parametro stmt è obbligatorio e richiede un valore di input ntext, nchar oppure nvarchar.

    [!NOTA]

    Le regole per la specifica del valore stmt sono le stesse di quelle per sp_cursoropen, con l'eccezione che i dati di tipo stringa stmt devono essere ntext.

  • options
    Parametro facoltativo tramite cui viene restituita una descrizione delle colonne dei set di risultati del cursore. Per options è necessario il valore di input int seguente.

    Valore

    Descrizione

    0x0001

    RETURN_METADATA

  • scrollopt
    Opzione di scorrimento. scrollopt è un parametro facoltativo che richiede uno dei valori di input int seguenti.

    Valore

    Descrizione

    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

    Il valore richiesto potrebbe non essere appropriato per il cursore definito da stmt, pertanto questo parametro funge sia da input sia da output. In questi casi, SQL Server assegna un valore appropriato.

  • ccopt
    Opzioni del controllo della concorrenza. ccopt è un parametro facoltativo che richiede uno dei valori di input int seguenti.

    Valore

    Descrizione

    0x0001

    READ_ONLY

    0x0002

    SCROLL_LOCKS (precedentemente noto come LOCKCC)

    0x0004

    OPTIMISTIC (precedentemente noto come OPTCC)

    0x0008

    OPTIMISTIC (precedentemente noto come 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

    Come accade per scrollpt, SQL Server può assegnare un valore diverso da quello richiesto.

Osservazioni

Il parametro di stato RPC è uno degli elementi seguenti:

Valore

Descrizione

0

Success

0x0001

Failure

1FF6

Non è stato possibile restituire metadati.

[!NOTA]

Ciò accade in quanto l'istruzione non produce un set di risultati, ad esempio è un'istruzione INSERT o DDL.

Esempi

Quando stmt dispone di parametri e il valore PARAMETERIZED_STMT di scrollopt è ON, il formato della stringa è il seguente:

{ <local variable name> <data type> } [ ,…n ]

Vedere anche

Riferimento

sp_cursorexecute (Transact-SQL)

sp_cursoropen (Transact-SQL)

sp_cursorunprepare (Transact-SQL)

Stored procedure di sistema (Transact-SQL)