sp_cursorexecute (Transact-SQL)
Gilt für:SQL Server
Erstellt einen Cursor, der auf dem von sp_cursorprepare erstellten Ausführungsplan basiert, und füllt ihn auf. Dieses Verfahren, gekoppelt mit sp_cursorprepare, hat die gleiche Funktion wie sp_cursoropen, ist aber in zwei Phasen unterteilt. sp_cursorexecute wird durch Angabe der ID =4 in einem TDS-Paket (Tabular Data Stream) aufgerufen.
Transact-SQL-Syntaxkonventionen
Syntax
sp_cursorexecute prepared_handle, cursor
[ , scrollopt[ OUTPUT ]
[ , ccopt[ OUTPUT ]
[ ,rowcount OUTPUT [ ,bound param][,...n]]]]]
Argumente
prepared_handle
Ist der von sp_cursorprepare zurückgegebene Wert für vorbereitetes Anweisungshandle . prepared_handle ist ein erforderlicher Parameter, der einen int-Eingabewert aufruft .
Cursor
Der von SQL Server generierte Cursorbezeichner. Cursor ist ein erforderlicher Parameter, der für alle nachfolgenden Prozeduren angegeben werden muss, die auf den Cursor wirken, z. B. sp_cursorfetch
scrollopt
Option für den Bildlauf. scrollopt ist ein optionaler Parameter, der einen int-Eingabewert erfordert. Der sp_cursorexecutescrollopt-Parameter verfügt über dieselben Wertoptionen wie für sp_cursoropen.
Hinweis
Der PARAMETERIZED_STMT-Wert wird nicht unterstützt.
Wichtig
Wenn kein scrollopt-Wert angegeben wird, ist der Standardwert KEYSET, unabhängig vom in sp_cursorprepare angegebenen scrollopt-Wert .
ccopt
Option für die Währungssteuerung. ccopt ist ein optionaler Parameter, der einen int-Eingabewert erfordert. Der sp_cursorexecuteccopt-Parameter verfügt über dieselben Wertoptionen wie für sp_cursoropen.
Wichtig
Wenn kein ccopt-Wert angegeben wird, ist der Standardwert OPTIMISTISCH, unabhängig vom in sp_cursorprepare angegebenen ccopt-Wert .
Rowcount
Ein optionaler Parameter, der die Anzahl der mit AUTO_FETCH zu verwendenden Fetchpufferzeilen angibt. Der Standardwert ist 20 Zeilen. rowcount verhält sich anders, wenn es als Eingabewert im Vergleich zu einem Rückgabewert zugewiesen wird.
Als Eingabewert | Als Rückgabewert |
---|---|
Wenn AUTO_FETCH mit FAST_FORWARD Cursor angegeben wird , stellt rowcount die Anzahl der Zeilen dar, die im Abrufpuffer platziert werden sollen. | Stellt die Anzahl der Zeilen im Resultset dar. Wenn der scrollopt AUTO_FETCH Wert angegeben wird, gibt rowcount die Anzahl der Zeilen zurück, die in den Abrufpuffer abgerufen wurden. |
bound_param
Gibt die optionale Verwendung zusätzlicher Parameter an.
Hinweis
Alle nach dem fünften Parameter übergebenen Parameter werden als Eingabeparameter an den Anweisungsplan übergeben.
Coderückgabewert
rowcount kann die folgenden Werte zurückgeben.
Wert | BESCHREIBUNG |
---|---|
-1 | Die Anzahl der unbekannten Zeilen. |
-n | Eine asynchrone Auffüllung ist wirksam. |
Bemerkungen
scrollopt-Parameter und ccopt-Parameter
scrollopt und ccopt sind nützlich, wenn die zwischengespeicherten Pläne für den Servercache vorzeitig eingestellt werden, was bedeutet, dass das vorbereitete Handle, das die Anweisung identifiziert, neu kompiliert werden muss. Die Werte des scrollopt - und ccopt-Parameters müssen mit den Werten übereinstimmen, die in der ursprünglichen Anforderung an sp_cursorprepare gesendet wurden.
Hinweis
PARAMETERIZED_STMT sollte nicht scrollopt zugewiesen werden.
Nicht übereinstimmende Werte bewirken eine Neukompilierung der Pläne, wodurch Vorbereitungs- und Ausführungsvorgänge negiert werden.
Überlegungen zu RPC und TDS
Das RPC-RETURN_METADATA-Eingabeflag kann auf 1 festgelegt werden. Dadurch wird angefordert, dass Metadaten zur SELECT-Liste des Cursors im TDS-Datenstrom zurückgegeben werden.
Weitere Informationen
sp_cursoropen (Transact-SQL)
sp_cursorfetch (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für