sp_cursorexecute (Transact-SQL)
Gilt für: SQL Server
Erstellt und füllt einen Cursor basierend auf dem von sp_cursorprepare
. Dieses Verfahren, gekoppelt mit sp_cursorprepare
, hat die gleiche Funktion wie sp_cursoropen
, aber wird in zwei Phasen aufgeteilt. sp_cursorexecute
wird aufgerufen, indem in einem TDS-Paket (Tabular Data Stream) angegeben ID = 4
wird.
Transact-SQL-Syntaxkonventionen
Syntax
sp_cursorexecute prepared_handle , cursor
[ , scrollopt [ OUTPUT ]
[ , ccopt [ OUTPUT ]
[ , rowcount OUTPUT [ , bound param ] [ , ...n ] ] ] ]
[ ; ]
Argumente
prepared_handle
Der vorbereitete Anweisungshandle-Wert, der von sp_cursorprepare
. Der parameter prepared_handle ist int und kann nicht sein NULL
.
Cursor
Der Datenbank-Engine generierte Cursorbezeichner. Cursor ist ein erforderlicher Parameter, der für alle nachfolgenden Prozeduren angegeben werden muss, die auf den Cursor reagieren, z sp_cursorfetch
. B. .
scrollopt
Option für den Bildlauf. Der Scrollopt-Parameter ist int mit einem Standardwert von NULL
. Der sp_cursorexecute
Scrollopt-Parameter weist die gleichen Wertoptionen auf wie sp_cursoropen
.
Der PARAMETERIZED_STMT
Wert wird nicht unterstützt.
Wenn kein Bildlaufoptwert angegeben ist, ist KEYSET
der Standardwert unabhängig vom in der Datei angegebenen sp_cursorprepare
Scrollopt-Wert.
Kcopt
Option für die Währungssteuerung. ccopt ist ein optionaler Parameter, der einen Int-Eingabewert erfordert. Der sp_cursorexecute
Ccopt-Parameter hat die gleichen Wertoptionen wie sp_cursoropen
.
Wenn kein Ccopt-Wert angegeben ist, ist OPTIMISTIC
der Standardwert unabhängig vom in sp_cursorprepare
.
Rowcount
Ein optionaler Parameter, der die Anzahl der Abrufpufferzeilen angibt, die für die Verwendung verwendet AUTO_FETCH
werden sollen. 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 Cursorn angegeben wird, stellt "rowcount" die Anzahl der Zeilen dar, die in den Abrufpuffer eingefügt werden sollen. |
Stellt die Anzahl der Zeilen im Resultset dar. Wenn der Scrollopt-Wert AUTO_FETCH angegeben wird, gibt rowcount die Anzahl der Zeilen zurück, die in den Abrufpuffer abgerufen wurden. |
bound_param
Kennzeichnet die optionale Verwendung zusätzlicher Parameter.
Alle nach dem fünften Parameter übergebenen Parameter werden als Eingabeparameter an den Anweisungsplan übergeben.
Rückgabecodewerte
rowcount gibt 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 gesendet werden.sp_cursorprepare
PARAMETERIZED_STMT
sollte nicht dem Scrollopt zugewiesen werden.
Fehler beim Bereitstellen übereinstimmender Werte bei der Neukompilierung der Pläne, wobei die Vorbereitungs- und Ausführungsvorgänge negiert werden.
Überlegungen zu RPC und TDS
Das RPC-Eingabeflagge RETURN_METADATA
kann so festgelegt 1
werden, dass die Cursorauswahllistenmetadaten im TDS-Datenstrom zurückgegeben werden.