@@CURSOR_ROWS (Transact-SQL)
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
接続で開いた最後のカーソルで現在登録されている行数を返します。 パフォーマンスを向上させるために、SQL Server では、大きなキーセットと静的カーソルを非同期に作成できます。 あるカーソルに登録されている行数が @@CURSOR_ROWS の呼び出し時に取得されることは、@@CURSOR_ROWS
を呼び出すことで決定できます。
構文
@@CURSOR_ROWS
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
戻り値の型
integer
戻り値
戻り値 | 説明 |
---|---|
-m | カーソルは非同期で作成されます。 返される値 (-m) は、現在キーセットにある行数です。 |
-1 | カーソルが動的です。 動的カーソルはすべての変更を反映するので、そのカーソルに登録されている行数は常に変化します。 登録されているすべての行がカーソルによって取得されるとは限りません。 |
0 | オープンされているカーソルがない場合、最後にオープンされたカーソルに行が登録されていない場合、または最後にオープンされたカーソルがクローズまたは割り当てを解除されている場合に返されます。 |
n | カーソルに行がすべて完全に登録されている場合に返されます。 返される値 (n) には、カーソル内の行の合計数。 |
注釈
@@CURSOR_ROWS
は、最後のカーソルが非同期で開いた場合、負の数を返します。 sp_configure カーソルしきい値が 0 を超える場合か、カーソル結果セットの行数がカーソルしきい値を超える場合、キーセットドライバー カーソルまたは静的カーソルが非同期で開きます。
例
この例では、最初にカーソルを宣言し、SELECT
を使用して @@CURSOR_ROWS
の値を表示します。 カーソルが開く前は値 0
が設定され、その後、値 -1
が設定されることで、カーソル キーセットが非同期で作成されることを示します。
USE AdventureWorks2022;
GO
SELECT @@CURSOR_ROWS;
DECLARE Name_Cursor CURSOR FOR
SELECT LastName ,@@CURSOR_ROWS FROM Person.Person;
OPEN Name_Cursor;
FETCH NEXT FROM Name_Cursor;
SELECT @@CURSOR_ROWS;
CLOSE Name_Cursor;
DEALLOCATE Name_Cursor;
GO
以下に結果セットを示します。
-----------
0
LastName
---------------
Sanchez
-----------
-1
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示