次の方法で共有


sp_cursorexecute (Transact-SQL)

適用対象: SQL サーバー

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

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

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

Note

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カーソル rowcount でAUTO_FETCHが指定されている場合 はフェッチ バッファーに配置する行数を表します。 結果セット内の行数を表します。 scrollopt AUTO_FETCH値を指定すると、rowcountはフェッチ バッファーにフェッチされた行数を返します。

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

Note

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

コード戻り値

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

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

解説

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

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

Note

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

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

RPC と TDS に関する考慮事項

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

参照

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