Teilen über


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)