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)