sp_cursorexecute (Transact-SQL)
適用対象: SQL Server
sp_cursorprepare
によって作成された実行プランに基づいてカーソルを作成して設定します。 この手順は、 sp_cursorprepare
と組み合わせて、 sp_cursoropen
と同じ機能を持っていますが、2 つのフェーズに分割されます。 sp_cursorexecute
は、表形式データ ストリーム (TDS) パケットで ID = 4
を指定することによって呼び出されます。
構文
sp_cursorexecute prepared_handle , cursor
[ , scrollopt [ OUTPUT ]
[ , ccopt [ OUTPUT ]
[ , rowcount OUTPUT [ , bound param ] [ , ...n ] ] ] ]
[ ; ]
引数
prepared_handle
prepared ステートメント handle sp_cursorprepare
によって返される値。 prepared_handle パラメーターは int であり、NULL
することはできません。
cursor
データベース エンジン生成されたカーソル識別子。 cursor は、カーソルに作用するすべての後続のプロシージャ ( sp_cursorfetch
など) で指定する必要がある必須パラメーターです。
scrollopt
スクロール オプションです。 scrollopt パラメーターは int で、既定値は NULL
です。 sp_cursorexecute
scrollopt パラメーターには、sp_cursoropen
と同じ値オプションがあります。
PARAMETERIZED_STMT
値はサポートされていません。
scrollopt値が指定されていない場合、既定値は、sp_cursorprepare
で指定scrollopt値に関係なくKEYSET
されます。
ccopt
通貨コントロール オプション。 ccopt は、 int 入力値を必要とする省略可能なパラメーターです。 sp_cursorexecute
ccopt パラメーターには、sp_cursoropen
と同じ値オプションがあります。
ccopt値が指定されていない場合、既定値は、sp_cursorprepare
で指定ccopt値に関係なくOPTIMISTIC
されます。
rowcount
AUTO_FETCH
で使用するフェッチ バッファー行の数を示す省略可能なパラメーター。 既定値は 20 行です。 rowcount は、入力値と戻り値として割り当てられた場合の動作が異なります。
入力値として | 戻り値として |
---|---|
FAST_FORWARD カーソルでAUTO_FETCH が指定されている場合、rowcount はフェッチ バッファーに配置する行数を表します。 |
結果セット内の行数を表します。 scrollopt AUTO_FETCH 値を指定すると、rowcountはフェッチ バッファーにフェッチされた行数を返します。 |
bound_param
追加パラメーターの省略可能な使用を示します。
5 番目以降のすべてのパラメーターは、入力パラメーターとしてステートメント プランに渡されます。
リターン コードの値
rowcount は次の値を返します。
値 | 説明 |
---|---|
-1 |
不明な行の数。 |
-n |
非同期設定が有効になっています。 |
解説
scrollopt パラメーターと ccopt パラメーター
scrollopt と ccopt は、キャッシュされたプランがサーバー キャッシュに割り当てられている場合に便利です。つまり、ステートメントを識別する準備済みハンドルを再コンパイルする必要があります。 scrollopt および ccopt パラメーターの値は、元の要求でsp_cursorprepare
に送信された値と一致する必要があります。
PARAMETERIZED_STMT
は、 scrollopt に割り当てることはできません。
一致する値を指定しないと、プランが再コンパイルされ、準備操作と実行操作が否定されます。
RPC と TDS に関する考慮事項
RPC RETURN_METADATA
入力フラグを 1
に設定して、カーソル選択リストのメタデータが TDS ストリームに返されるように要求できます。