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 TDS (Tabular Data Stream)-Paket angegeben wird.
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.Hinweis 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 Eingabewert vom Typ ntext, nchar oder nvarchar erfordert. Geben Sie einen NULL-Wert ein, wenn die Anweisung nicht parametrisiert ist.Hinweis 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.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
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 |
Success |
||
0x0001 |
Failure |
||
1FF6 |
Es konnten keine Metadaten zurückgegeben werden.
|
Beispiele
Wenn stmt parametrisiert und der scrollopt-Wert PARAMETERIZED_STMT auf ON festgelegt ist, weist die Zeichenfolge das folgende Format auf:
{ <local variable name> <data type> } [ ,…n ]
Siehe auch
Verweis
sp_cursorexecute (Transact-SQL)