sp_cursorprepexec (Transact-SQL)
Kompiliert einen Plan für die gesendete Cursoranweisung oder den gesendeten Batch, erstellt dann den Cursor und füllt ihn auf. sp_cursorprepexec vereint die Funktionen von sp_cursorprepare und sp_cursorexecute. Diese Prozeduren werden aufgerufen, indem ID =5 in einem Tabular Data Stream-Paket (TDS) angegeben wird.
Transact-SQL-Syntaxkonventionen
Syntax
sp_cursorprepexec prepared handle OUTPUT, cursor OUTPUT, params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
Argumente
prepared handle
Ein von SQL Server generierter, vorbereiteter Handlebezeichner. prepared handle ist erforderlich und gibt int zurück.cursor
Der von SQL Server generierte Cursorbezeichner. cursor ist ein erforderlicher Parameter, der für alle nachfolgenden Prozeduren angegeben werden muss, die sich auf diesen Cursor auswirken, z. B. sp_cursorfetch.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 Eingabewert vom Typ ntext, nchar oder nvarchar erfordert.Hinweis Verwenden Sie eine ntext-Zeichenfolge als Eingabewert, wenn stmt parametrisiert ist und der scrollopt-Wert PARAMETERIZED_STMT die Einstellung ON hat.
statement
Definiert das Resultset des Cursors. Der statement-Parameter ist erforderlich und erfordert einen der Eingabewerte ntext, nchar oder nvarchar.Hinweis 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
Da es möglich ist, dass die angeforderte Option nicht für den von <stmt> definierten Cursor geeignet ist, dient dieser Parameter sowohl als Eingabe- als auch als Ausgabeparameter. In solchen Fällen weist SQL Server einen entsprechenden Typ zu und ändert diesen Wert.
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.
rowcount
Ein optionaler Parameter, der die Anzahl der mit AUTO_FETCH zu verwendenden Fetchpufferzeilen angibt. Der Standardwert ist 20 Zeilen. Das Verhalten von rowcount ist unterschiedlich, je nachdem, ob der Parameter als Eingabewert oder Rückgabewert zugewiesen wird.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.
Rückgabecodewerte
Wenn params einen NULL-Wert zurückgibt, wird die Anweisung nicht parametrisiert.
Siehe auch
Verweis
sp_cursorexecute (Transact-SQL)