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
sp_cursorprepareによって返される準備されたステートメント ハンドル 値です。 prepared_handle は、 int 入力値を呼び出す必須パラメーターです。

cursor
SQL Server生成されたカーソル識別子です。 cursor は、カーソルに作用するすべての後続のプロシージャで指定する必要がある必須パラメーターです (例: sp_cursorfetch

scrollopt
スクロール オプションです。 scrollopt は、 int 入力値を必要とする省略可能なパラメーターです。 sp_cursorexecutescrollopt パラメーターには、sp_cursoropenと同じ値オプションがあります。

注意

PARAMETERIZED_STMT値はサポートされていません。

重要

scrollopt 値が指定されていない場合、sp_cursorprepareで指定された scrollopt 値に関係なく、既定値は KEYSET です。

ccopt
通貨コントロール オプション。 ccopt は、 int 入力値を必要とする省略可能なパラメーターです。 sp_cursorexecuteccopt パラメーターには、sp_cursoropenと同じ値オプションがあります。

重要

ccopt 値が指定されていない場合、sp_cursorprepareで指定された ccopt 値に関係なく、既定値は OPTIMISTIC です。

行数
AUTO_FETCHで使用するフェッチ バッファー行の数を示す省略可能なパラメーターです。 既定値は 20 行です。 rowcount は、入力値と戻り値として割り当てられた場合の動作が異なります。

入力値として 戻り値として
FAST_FORWARDカーソルでAUTO_FETCHが指定されている場合、 rowcount はフェッチ バッファーに配置する行数を表します。 結果セット内の行数を表します。 scrollopt AUTO_FETCH値を指定すると、rowcount はフェッチ バッファーにフェッチされた行の数を返します。

bound_param
追加パラメーターをオプションで使用することを示します。

注意

5 番目以降のパラメーターは、入力パラメーターとしてステートメント プランに渡されます。

コードの戻り値

rowcount は次の値を返す場合があります。

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

解説

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

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

注意

PARAMETERIZED_STMT を scrollopt に割り当ててはいけません。

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

RPC と TDS に関する考慮事項

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

参照

sp_cursoropen (Transact-SQL)
sp_cursorfetch (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)