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_cursorprepareScrollopt-Wert.

Kcopt

Option für die Währungssteuerung. ccopt ist ein optionaler Parameter, der einen Int-Eingabewert erfordert. Der sp_cursorexecuteCcopt-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_FETCHwerden 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.