Condividi tramite


sp_cursorexecute (Transact-SQL)

Crea e popola un cursore in base al piano di esecuzione creato da sp_cursorprepare. Questa procedura, associata a sp_cursorprepare, ha la stessa funzione di sp_cursoropen, ma è suddivisa in due fasi. sp_cursorexecute viene richiamata specificando ID = 4 in un pacchetto del flusso TDS.

Si applica a: SQL Server (da SQL Server 2008 a versione corrente).

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

Sintassi

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

Argomenti

  • prepared_handle
    Valore dell'handle dell'istruzione preparata restituito da sp_cursorprepare. prepared_handle è un parametro obbligatorio che richiede un valore di input int.

  • cursor
    Identificatore del cursore generato da SQL Server. cursor è un parametro obbligatorio che deve essere fornito in tutte le procedure successive che agiscono sul cursore, ad esempio sp_cursorfetch

  • scrollopt
    Opzione di scorrimento. scrollopt è un parametro facoltativo che richiede un valore di input int. Il parametro sp_cursorexecute scrollopt dispone delle stesse opzioni dei valori di sp_cursoropen.

    Nota

    Il valore PARAMETERIZED_STMT non è supportato.

    Importante

    Se non è specificato alcun valore per scrollopt, il valore predefinito è KEYSET indipendentemente dal valore di scrollopt specificato in sp_cursorprepare.

  • ccopt
    Opzione del controllo della valuta. ccopt è un parametro facoltativo che richiede un valore di input int. Il parametro sp_cursorexecute ccopt dispone delle stesse opzioni dei valori di sp_cursoropen.

    Importante

    Se non è specificato alcun valore per ccopt, il valore predefinito è OPTIMISTIC indipendentemente dal valore di ccopt specificato in sp_cursorprepare.

  • rowcount
    Parametro facoltativo che indica il numero di righe del buffer di recupero da utilizzare con AUTO_FETCH. Il valore predefinito è 20 righe. rowcount si comporta in modo diverso quando viene assegnato come valore di input rispetto a quando viene assegnato come valore restituito.

    Come valore di input

    Come valore restituito

    Quando viene specificato il valore AUTO_FETCH con i cursori FAST_FORWARD, rowcount rappresenta il numero di righe da inserire nel buffer di recupero.

    Rappresenta il numero di righe nel set di risultati. Quando viene specificato il valore AUTO_FETCH di scrollopt, rowcount restituisce il numero di righe recuperate nel buffer di recupero.

  • bound_param
    Indica l'utilizzo facoltativo di parametri aggiuntivi.

    Nota

    I parametri dopo il quinto vengono passati insieme sul piano dell'istruzione come parametri di input.

Valore restituito del codice

rowcount potrebbe restituire i valori seguenti.

Valore

Descrizione

-1

Numero di righe non note.

-n

Un popolamento asincrono è attivo.

Osservazioni

Parametri scrollopt e ccopt

scrollopt e ccopt sono utili quando i piani memorizzati nella cache vengono sostituiti dalla cache del server. Ciò significa che è necessario ricompilare l'handle preparato che identifica l'istruzione. I valori dei parametri scrollopt e ccopt devono corrispondere ai valori inviati nella richiesta originale a sp_cursorprepare.

Nota

È consigliabile non assegnare PARAMETERIZED_STMT a scrollopt.

Se non si riesce a fornire valori corrispondenti, i piani verranno ricompilati impedendo le operazioni di preparazione ed esecuzione.

Considerazioni su RPC e TDS

Per richiedere che vengano restituiti metadati sull'elenco di selezione del cursore nel flusso TDS, è possibile impostare il flag di input RPC RETURN_METADATA su 1.

Vedere anche

Riferimento

sp_cursoropen (Transact-SQL)

sp_cursorfetch (Transact-SQL)

Stored procedure di sistema (Transact-SQL)