sp_cursorprepexec (Transact-SQL)
送信済みのカーソル ステートメントまたはバッチに対応するプランをコンパイルしてカーソルを作成し、データを格納します。 sp_cursorprepexec には、sp_cursorprepare と sp_cursorexecute の機能が組み合わされています。 このプロシージャは、ID = 5 を指定した場合に表形式のデータ ストリーム (TDS) パケットで呼び出されます。
構文
sp_cursorprepexec prepared handle OUTPUT, cursor OUTPUT, params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
引数
prepared handle
SQL Server によって生成される準備済みハンドル識別子です。 prepared handle は必須で、int を返します。cursor
SQL Server によって生成されるカーソル識別子です。 cursor は必須パラメーターで、このカーソルに対して操作を実行する後続のすべてのプロシージャに渡す必要があります。プロシージャの例: sp_cursorfetch.params
パラメーター化されたステートメントを指定します。 変数の params 定義は、ステートメントのパラメーター マーカーと置き換えられます。 params は、ntext、nchar、または nvarchar 入力値を必要とする必須パラメーターです。注 stmt がパラメーター化されており、scrollopt PARAMETERIZED_STMT の値が ON になっている場合は、ntext 文字列を入力値として使用してください。
statement
カーソル結果セットを定義します。 statement パラメーターは必須で、ntext、nchar、または nvarchar 入力値を必要とします。注 stmt の値を指定するためのルールは sp_cursoropen の場合と同じですが、stmt の文字列データ型を ntext にする必要がある点が異なります。
options
カーソル結果セット列の説明を返す省略可能なパラメーターです。 options は、次の int 入力値を必要とします。値
説明
0x0001
RETURN_METADATA
scrollopt
スクロール オプションです。 scrollopt は省略可能なパラメーターで、次の int 入力値のいずれかを必要とします。値
説明
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
要求されるオプションが <stmt> で定義されているカーソルに適していない可能性があるので、このパラメーターは入力と出力の両方として機能します。 このような場合は、SQL Server によって適切な型が割り当てられ、この値が変更されます。
ccopt
同時実行制御オプションです。 ccopt は省略可能なパラメーターで、次の int 入力値のいずれかを必要とします。値
説明
0x0001
READ_ONLY
0x0002
SCROLL_LOCKS (以前の LOCKCC)
0x0004
OPTIMISTIC (以前の OPTCC)
0x0008
OPTIMISTIC (以前の 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
scrollpt と同様に、要求される値とは異なる値を SQL Server で割り当てることができます。
rowcount
AUTO_FETCH で使用するフェッチ バッファー行の数を指定する省略可能なパラメーターです。 既定値は 20 行です。 rowcount は、入力値として割り当てられる場合と戻り値として割り当てられる場合とでは動作が異なります。入力値
戻り値
AUTO_FETCH が FAST_FORWARD カーソルと共に指定されている場合、rowcount はフェッチ バッファーに格納する行の数を表します。
結果セット内の行の数を表します。 scrollopt AUTO_FETCH の値が指定されている場合、rowcount はフェッチ バッファーにフェッチされた行の数を返します。
リターン コードの値
params が NULL 値を返す場合、ステートメントはパラメーター化されていません。
関連項目
参照
sp_cursorexecute (Transact-SQL)