sp_cursorprepexec (Transact-SQL)
適用対象:SQL ServerAzure SQL DatabaseAzure Synapse AnalyticsAnalytics Platform System (PDW)
送信されたカーソル ステートメントまたはバッチのプランをコンパイルし、カーソルを作成して設定します。 sp_cursorprepexec
の関数 sp_cursorprepare
を結合します sp_cursorexecute
。 この手順は、表形式データ ストリーム (TDS) パケットで指定 ID = 5
することによって呼び出されます。
構文
sp_cursorprepexec prepared handle OUTPUT , cursor OUTPUT , params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
[ , '@parameter_name [ , ...n ]' ]
引数
準備されたハンドル
SQL Server によって生成された 準備済みハンドル 識別子。 準備されたハンドルが必要であり、int を返します。
cursor
SQL Server によって生成された カーソル 識別子。 cursor は、このカーソルに作用するすべての後続のプロシージャで指定する必要がある必須パラメーターです。たとえば、 sp_cursorfetch
params
パラメーター化されたステートメントを指定します。 変数のパラメーター定義は、ステートメント内のパラメーター マーカーに置き換えられます。 params は、ntext、nchar、または nvarchar の入力値を呼び出す必須のパラメーターです。
Note
ステートメントがパラメーター化され、scrollopt PARAMETERIZED_STMT値が ON の場合は、入力値として ntext 文字列を使用します。
statement
カーソル結果セットを定義します。 ステートメント パラメーターは必須であり、ntext、nchar、または nvarchar の入力値を呼び出します。
Note
ステートメント値を指定する規則は、ステートメント文字列のデータ型を ntext にする必要がある点を除き、使用する規則と同じですsp_cursoropen
。
options
カーソル結果セット列の説明を返す省略可能なパラメーター。 オプション には、次 の int 入力値が必要です。
Value | 説明 |
---|---|
0x0001 | RETURN_METADATA |
scrollopt
スクロール オプションです。 scrollopt は、次 のいずれかの int 入力値を必要とする省略可能なパラメーターです。
Value | 説明 |
---|---|
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 |
要求されたオプションがステートメントによって定義されたカーソルに適していない可能性があるため、このパラメーターは入力と出力の両方として機能します。 このような場合、SQL Server は適切な型を割り当て、この値を変更します。
ccopt
コンカレンシー制御オプション。 ccopt は、次 のいずれかの int 入力値を必要とする省略可能なパラメーターです。
Value | 説明 |
---|---|
0x0001 | READ_ONLY |
0x0002 | SCROLL_LOCKS (以前の LOCKCC) |
0x0004 | オプティミスティック (旧称 OPTCC) |
0x0008 | オプティミスティック (旧称 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 |
scrollopt と同様に、SQL Server は要求された値とは異なる値を割り当てることができます。
行数
AUTO_FETCHで使用するフェッチ バッファー行の数を示す省略可能なパラメーター。 既定値は 20 行です。 rowcount は、入力値と戻り値として割り当てられた場合の動作が異なります。
入力値として | 戻り値として |
---|---|
FAST_FORWARDカーソルでAUTO_FETCHが指定されている場合、 rowcount はフェッチ バッファーに配置する行数を表します。 | 結果セット内の行数を表します。 scrollopt AUTO_FETCH値を指定すると、rowcount はフェッチ バッファーにフェッチされた行の数を返します。 |
parameter_name
params 引数で定義されている 1 つ以上のパラメーター名を指定します。 params に含まれる すべてのパラメーターにパラメーターを指定する必要があります。 パラメーター内の Transact-SQL ステートメントまたはバッチにパラメーターが定義されていない場合、この引数は必要ありません。
リターン コードの値
パラメーターが NULL 値を返す場合、ステートメントはパラメーター化されません。
例
この例では、次の使用 sp_cursorprepexec
例を示します。 データベース内のテーブルに対してクエリをPerson
AdventureWorks2022
実行し、名が "Katherine" であるすべてのレコードを返します。
USE AdventureWorks2022;
GO
DECLARE @prep_handle INT,
@cursor INT,
@scrollopt INT = 4104,
@ccopt INT = 8193,
@rowcnt INT;
EXEC sp_cursorprepexec
@prep_handle OUTPUT,
@cursor OUTPUT,
N'@fName nvarchar(100)',
N'SELECT FirstName, LastName FROM Person.Person WHERE FirstName = @fName',
@scrollopt,
@ccopt,
@rowcnt OUTPUT,
'Katherine';
EXEC sp_cursorfetch @cursor;
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示