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