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 dieselbe Funktion wie sp_cursoropen, ist jedoch in zwei Phasen unterteilt. sp_cursorexecute wird aufgerufen, indem die ID =4 in einem TDS-Paket (Tabellarischer Datenstrom) angegeben wird.
Transact-SQL-Syntaxkonventionen
Syntax
sp_cursorexecute prepared_handle, cursor
[ , scrollopt[ OUTPUT ]
[ , ccopt[ OUTPUT ]
[ ,rowcount OUTPUT [ ,bound param][,...n]]]]]
Argumente
prepared_handle
Ist der vorbereitete Anweisungshandle-Wert, der von sp_cursorprepare zurückgegeben wird. 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 bereitgestellt werden muss, die auf den Cursor reagieren, z. B. sp_cursorfetch
scrollopt
Option für den Bildlauf. scrollopt ist ein optionaler Parameter, der einen Int-Eingabewert erfordert. Der parameter sp_cursorexecutescrollopt hat die gleichen Wertoptionen wie für sp_cursoropen.
Hinweis
Der PARAMETERIZED_STMT-Wert wird nicht unterstützt.
Wichtig
Wenn kein Scrolloptwert angegeben ist, ist der Standardwert KEYSET, unabhängig vom in sp_cursorprepare angegebenen Scrollopt-Wert .
Kcopt
Option für die Währungssteuerung. ccopt ist ein optionaler Parameter, der einen Int-Eingabewert erfordert. Der sp_cursorexecuteCcopt-Parameter verfügt über die gleichen Wertoptionen wie für sp_cursoropen.
Wichtig
Wenn kein Ccopt-Wert angegeben ist, 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 ein Eingabewert als Eingabewert oder ein Rückgabewert zugewiesen wird.
Als Eingabewert | Als Rückgabewert |
---|---|
Wenn AUTO_FETCH mit FAST_FORWARD Cursorzeilenanzahl angegeben wird, stellt die Anzahl der Zeilen dar, die in den Abrufpuffer eingefügt werden sollen. | Stellt die Anzahl der Zeilen im Resultset dar. Wenn der Scrollopt-AUTO_FETCH Wert angegeben ist, gibt der Zeilenanzahlwert die Anzahl der Zeilen zurück, die im 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.
Code-Rückgabewert
"rowcount " gibt möglicherweise die folgenden Werte zurück.
Wert | Beschreibung |
---|---|
-1 | Die Anzahl der unbekannten Zeilen. |
-n | Eine asynchrone Auffüllung ist wirksam. |
Hinweise
scrollopt-Parameter und ccopt-Parameter
Scrollopt und Ccopt sind nützlich, wenn die zwischengespeicherten Pläne für den Servercache vorab eingestellt werden, was bedeutet, dass der vorbereitete Handle, der die Anweisung identifiziert, neu kompiliert werden muss. Die Werte für scrollopt- und ccopt-Parameter müssen mit den Werten übereinstimmen, die in der ursprünglichen Anforderung an sp_cursorprepare gesendet wurden.
Hinweis
PARAMETERIZED_STMT sollte nicht zum 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-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für