sp_cursorexecute (Transact-SQL)
Crea e popola un cursore in base al piano di esecuzione creato da sp_cursorprepare. Questa routine, insieme a sp_cursorprepare, svolge la stessa funzione di sp_cursoropen, ma viene suddivisa in due fasi. È possibile richiamare sp_cursorexecute specificando ID = 4 in un pacchetto del flusso TDS.
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 di cursore generato da SQL Server. cursor è un parametro obbligatorio che deve essere fornito in tutte le routine 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_cursorexecutescrollopt dispone delle stesse opzioni dei valori di sp_cursoropen.Nota
Il valore PARAMETERIZED_STMT non è supportato.
ImportanteSe non è specificato alcun valore per scrollopt, il valore predefinito è KEYSET indipendentemente dal valore di scrollopt specificato in sp_cursorprepare.
ccopt
Opzione di controllo della concorrenza. ccopt è un parametro facoltativo che richiede un valore di input int. Il parametro sp_cursorexecuteccopt dispone delle stesse opzioni dei valori di sp_cursoropen.
ImportanteSe 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. L'impostazione predefinita è 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
.gif)