Share via


sp_cursorexecute (Transact-SQL)

Erstellt einen Cursor, der auf dem von sp_cursorprepare erstellten Ausführungsplan basiert, und füllt ihn auf. Diese mit sp_cursorprepare gekoppelte Prozedur verfügt über die gleiche Funktion wie sp_cursoropen, ist jedoch in zwei Phasen unterteilt. sp_cursorexecute wird aufgerufen, indem ID = 4 in einem Tabular Data Stream-Paket (TDS) angegeben wird.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

        sp_cursorexecute 
        prepared_handle
        , 
        cursor
        
        
            [ , scrollopt[ OUTPUT ]
    [ , ccopt[ OUTPUT ]
    [ ,rowcount OUTPUT [ ,bound param][,...n]]]]]

Argumente

  • prepared_handle
    Ist der vorbereitete handle-Anweisungswert, der von sp_cursorprepare zurückgegeben wurde. prepared_handle ist ein erforderlicher Parameter, der den int-Eingabewert erfordert.

  • cursor
    Der von SQL Server generierte Cursorbezeichner. cursor ist ein erforderlicher Parameter, der für alle nachfolgenden Prozeduren angegeben werden muss, die sich auf den Cursor auswirken, z. B. sp_cursorfetch.

  • scrollopt
    Option für den Bildlauf. scrollopt ist ein optionaler Parameter, der einen int-Eingabewert erfordert. Der sp_cursorexecutescrollopt-Parameter weist die gleichen Wertoptionen wie für sp_cursoropen auf.

    HinweisHinweis

    Der PARAMETERIZED_STMT-Wert wird nicht unterstützt.

    Wichtiger HinweisWichtig

    Wenn ein scrollopt-Wert nicht angegeben wird, lautet der Standardwert unabhängig von dem in sp_cursorprepare angegebenen scrollopt -Wert KEYSET.

  • ccopt
    Option zur Währungssteuerung. ccopt ist ein optionaler Parameter, der einen int-Eingabewert erfordert. Der sp_cursorexecuteccopt-Parameter weist die gleichen Wertoptionen wie für sp_cursoropen auf.

    Wichtiger HinweisWichtig

    Wenn ein ccopt-Wert nicht angegeben wird, lautet der Standardwert unabhängig von dem in sp_cursorprepare angegebenen ccopt-Wert OPTIMISTIC.

  • rowcount
    Ein optionaler Parameter, der die Anzahl der mit AUTO_FETCH zu verwendenden Fetchpufferzeilen angibt. Der Standardwert ist 20 Zeilen. Je nachdem, ob rowcount als Eingabewert oder Rückgabewert zugewiesen ist, verhält er sich anders.

    Als Eingabewert

    Als Rückgabewert

    Wenn AUTO_FETCH mit FAST_FORWARD-Cursorn angegeben wird, stellt rowcount die Anzahl der Zeilen dar, die im Fetchpuffer platziert werden sollen.

    Stellt die Anzahl der Zeilen im Resultset dar. Wenn der scrollopt-Wert AUTO_FETCH angegeben wird, gibt rowcount die Anzahl von Zeilen zurück, die in den Fetchpuffer abgerufen wurden.

  • bound_param
    Gibt die optionale Verwendung zusätzlicher Parameter an.

    HinweisHinweis

    Alle nach dem fünften Parameter übergebenen Parameter werden als Eingabeparameter an den Anweisungsplan übergeben.

Rückgabecodewert

rowcount kann folgende Werte zurückgeben:

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 hilfreich, wenn die zwischengespeicherten Pläne für den Servercache vorzeitig entfernt werden. In diesem Fall muss das vorbereitete Handle, durch das die Anweisung identifiziert wird, neu kompiliert werden. Die Werte des scrollopt-Parameters und des ccopt -Parameters müssen mit den Werten übereinstimmen, die in der ursprünglichen Anforderung an sp_cursorprepare gesendet wurden.

HinweisHinweis

PARAMETERIZED_STMT sollte scrollopt nicht 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.