Share via


sp_cursorprepare (Transact-SQL)

Kompiliert die Cursoranweisung oder den Batch in einen Ausführungsplan, erstellt jedoch keinen Cursor. Die kompilierte Anweisung kann später von sp_cursorexecute verwendet werden. Diese mit sp_cursorexecute gekoppelte Prozedur verfügt über die gleiche Funktion wie sp_cursoropen, ist jedoch in zwei Phasen unterteilt. sp_cursorprepare wird aufgerufen, indem ID = 3 in einem Tabular Data Stream-Paket (TDS) angegeben wird.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

        sp_cursorprepare 
        prepared_handle
         OUTPUT, 
        params
         , 
        stmt
         , 
        options
            [ , scrollopt[ , ccopt]]

Argumente

  • prepared_handle
    Ein von SQL Server generierter, vorbereiteter Handlebezeichner, der einen ganzzahligen Wert zurückgibt.

    HinweisHinweis

    prepared_handle wird anschließend an eine sp_cursorexecute-Prozedur übergeben, um einen Cursor zu öffnen. Nach der Erstellung bleibt ein Handle so lange bestehen, bis Sie sich abmelden oder es über die sp_cursorunprepare-Prozedur explizit entfernen.

  • params
    Identifiziert parametrisierte Anweisungen. Die params-Definition der Variablen wird in der Anweisung an die Stelle der Parametermarkierungen gesetzt. params ist ein erforderlicher Parameter, der einen der Eingabewerte ntext, nchar oder nvarchar erfordert. Geben Sie einen NULL-Wert ein, wenn die Anweisung nicht parametrisiert ist.

    HinweisHinweis

    Verwenden Sie eine ntext-Zeichenfolge als Eingabewert, wenn stmt parametrisiert ist und der scrollopt-Wert PARAMETERIZED_STMT die Einstellung ON hat.

  • stmt
    Definiert das Resultset des Cursors. Der stmt-Parameter ist erforderlich und erfordert einen der Eingabewerte ntext, nchar oder nvarchar.

    HinweisHinweis

    Die Regeln zum Angeben des stmt-Werts entsprechen denen für sp_cursoropen, mit der Ausnahme, dass der Datentyp der stmt-Zeichenfolge ntext lauten muss.

  • options
    Ein optionaler Parameter, der eine Beschreibung der Spalten im Cursorresultset zurückgibt. options erfordert den folgenden int-Eingabewert.

    Wert

    Beschreibung

    0x0001

    RETURN_METADATA

  • scrollopt
    Option für den Bildlauf. scrollopt ist ein optionaler Parameter, der einen der folgenden int-Eingabewerte erfordert.

    Wert

    Beschreibung

    0x0001

    KEYSET

    0x0002

    DYNAMIC

    0x0004

    FORWARD_ONLY

    0x0008

    STATIC

    0x10

    FAST_FORWARD

    0x1000

    PARAMETERIZED_STMT

    0x2000

    AUTO_FETCH

    0x4000

    AUTO_CLOSE

    0x8000

    CHECK_ACCEPTED_TYPES

    0x10000

    KEYSET_ACCEPTABLE

    0x20000

    DYNAMIC_ACCEPTABLE

    0x40000

    FORWARD_ONLY_ACCEPTABLE

    0x80000

    STATIC_ACCEPTABLE

    0x100000

    FAST_FORWARD_ACCEPTABLE

    Weil der angeforderte Wert nicht für den von stmt definierten Cursor geeignet sein könnte, dient dieser Parameter sowohl als Eingabe- als auch als Ausgabeparameter. In solchen Fällen weist SQL Server einen passenden Wert zu.

  • ccopt
    Option für die Parallelitätssteuerung. ccopt ist ein optionaler Parameter, der einen der folgenden int-Eingabewerte erfordert.

    Wert

    Beschreibung

    0x0001

    READ_ONLY

    0x0002

    SCROLL_LOCKS (vormals bekannt als LOCKCC)

    0x0004

    OPTIMISTIC (vormals bekannt als OPTCC)

    0x0008

    OPTIMISTIC (vormals bekannt als OPTCCVAL)

    0x2000

    ALLOW_DIRECT

    0x4000

    UPDT_IN_PLACE

    0x8000

    CHECK_ACCEPTED_OPTS

    0x10000

    READ_ONLY_ACCEPTABLE

    0x20000

    SCROLL_LOCKS_ACCEPTABLE

    0x40000

    OPTIMISTIC_ACCEPTABLE

    0x80000

    OPTIMISITC_ACCEPTABLE

    Wie bei scrollpt kann SQL Server einen anderen Wert als den angeforderten zuweisen.

Hinweise

Der RPC-Statusparameter entspricht einem der folgenden Werte:

Wert

Beschreibung

0

Erfolg

0x0001

Fehler

1FF6

Es konnten keine Metadaten zurückgegeben werden.

HinweisHinweis
Der Grund liegt darin, dass die Anweisung kein Resultset erzeugt; es handelt sich z. B. um eine INSERT-Anweisung oder DDL-Anweisung.

Beispiele

Wenn stmt parametrisiert und der scrollopt-Wert PARAMETERIZED_STMT auf ON festgelegt ist, weist die Zeichenfolge das folgende Format auf:

{ <Name der lokalen Variablen><Datentyp> } [ ,…n ]