sp_cursorexecute (Transact-SQL)

適用対象: SQL Server

sp_cursorprepareによって作成された実行プランに基づいてカーソルを作成して設定します。 この手順は、 sp_cursorprepareと組み合わせて、 sp_cursoropenと同じ機能を持っていますが、2 つのフェーズに分割されます。 sp_cursorexecute は、表形式データ ストリーム (TDS) パケットで ID = 4 を指定することによって呼び出されます。

Transact-SQL 構文表記規則

構文

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_cursorexecuteccopt パラメーターには、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 は次の値を返します。

Value 説明
-1 不明な行の数。
-n 非同期設定が有効になっています。

解説

scrollopt パラメーターと ccopt パラメーター

scrolloptccopt は、キャッシュされたプランがサーバー キャッシュに割り当てられている場合に便利です。つまり、ステートメントを識別する準備済みハンドルを再コンパイルする必要があります。 scrollopt および ccopt パラメーターの値は、元の要求でsp_cursorprepareに送信された値と一致する必要があります。

PARAMETERIZED_STMT は、 scrollopt に割り当てることはできません。

一致する値を指定しないと、プランが再コンパイルされ、準備操作と実行操作が否定されます。

RPC と TDS に関する考慮事項

RPC RETURN_METADATA 入力フラグを 1 に設定して、カーソル選択リストのメタデータが TDS ストリームに返されるように要求できます。