Dela via


sp_cursorexecute (Transact-SQL)

gäller för:SQL Server

Skapar och fyller i en markör baserat på körningsplanen som skapats av sp_cursorprepare. Den här proceduren, tillsammans med sp_cursorprepare, har samma funktion som sp_cursoropen, men är uppdelad i två faser. sp_cursorexecute anropas genom att ange ID = 4 i ett TDS-paket (Tabular Data Stream).

Transact-SQL syntaxkonventioner

Syntax

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

Argument

Viktig

Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.

prepared_handle

Den förberedda instruktionen hantera värde som returneras av sp_cursorprepare. Parametern prepared_handle är intoch kan inte NULL.

markören

Databasmotorgenererad marköridentifierare. markören är en obligatorisk parameter som måste anges för alla efterföljande procedurer som agerar på markören, till exempel sp_cursorfetch.

scrollopt

Rullningsalternativ. Parametern scrollopt är int, med standardvärdet NULL. Parametern sp_cursorexecutescrollopt har samma värdealternativ som sp_cursoropen.

Värdet PARAMETERIZED_STMT stöds inte.

Om ett scrollopt- värde inte har angetts är standardvärdet KEYSET oavsett scrollopt- värde som anges i sp_cursorprepare.

ccopt

Alternativ för valutakontroll. ccopt är en valfri parameter som kräver ett int indatavärde. Parametern sp_cursorexecuteccopt har samma värdealternativ som sp_cursoropen.

Om ett ccopt--värde inte anges är standardvärdet OPTIMISTIC oavsett ccopt- värde som anges i sp_cursorprepare.

rowcount

En valfri parameter som anger antalet hämtningsbuffertar som ska användas med AUTO_FETCH. Standardvärdet är 20 rader. rowcount fungerar annorlunda när det tilldelas som ett indatavärde jämfört med ett returvärde.

Som indatavärde Som returvärde
När AUTO_FETCH anges med FAST_FORWARD markörer representerar radantal antalet rader som ska placeras i hämtningsbufferten. Representerar antalet rader i resultatuppsättningen. När värdet scrolloptAUTO_FETCH anges returnerar rowcount antalet rader som hämtades till hämtningsbufferten.

bound_param

Innebär valfri användning av extra parametrar.

Alla parametrar efter den femte skickas vidare till instruktionsplanen som indataparametrar.

Returnera kodvärden

rowcount returnerar följande värden.

Värde Beskrivning
-1 Antal rader som är okända.
-n En asynkron population är i kraft.

Anmärkningar

scrollopt- och ccopt-parametrar

scrollopt och ccopt är användbara när cachelagrade planer är förinställda för servercachen, vilket innebär att den förberedda referensen som identifierar instruktionen måste kompileras om. Parametervärdena scrollopt och ccopt måste matcha de värden som skickades i den ursprungliga begäran för att sp_cursorprepare.

PARAMETERIZED_STMT bör inte tilldelas till scrollopt.

Om matchande värden inte anges resulterar det i omkompilering av planerna, vilket negerar åtgärderna för att förbereda och köra.

RPC- och TDS-överväganden

RPC-RETURN_METADATA indataflagga kan ställas in på 1 för att begära att markörens valda listmetadata returneras i TDS-strömmen.