次の方法で共有


@@CURSOR_ROWS (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

この関数は、接続で開かれた最後のカーソルに現在含まれている行の数を返します。 パフォーマンスを向上させるために、SQL Server では、大きなキーセットと静的カーソルを非同期に作成できます。 @@CURSOR_ROWS は、呼び出し時 @@CURSOR_ROWS にカーソルを修飾する行の数が取得されることを判別するために呼び出すことができます。

Transact-SQL 構文表記規則

構文

@@CURSOR_ROWS

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

戻り値の型

int

戻り値

戻り値 説明
-m カーソルは非同期で作成されます。 返される値 (-m) は、現在キーセットにある行数です。
-1 カーソルが動的です。 動的カーソルはすべての変更を反映するので、そのカーソルに登録されている行数は常に変化します。 カーソルが必ずしもすべての修飾行を取得するとは限りません。
0 カーソルが開かれたり、最後に開かれたカーソルに修飾された行がない、最後に開いたカーソルが閉じられたり、割り当てが解除されたりします。
n カーソルに行がすべて完全に登録されている場合に返されます。 返される値 (n) には、カーソル内の行の合計数。

注釈

@@CURSOR_ROWS は、最後のカーソルが非同期で開いた場合、負の数を返します。 カーソルのしきい値を超え、カーソルの結果セット内の行数がカーソルのしきい値 sp_configure を超えた 0場合、Keyset ドライバーまたは静的カーソルは非同期的に開きます。

この例では、最初にカーソルを宣言し、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   (No column name)   ROWSTAT
---------  -----------------  ---------
Sánchez    -1                 NULL

-----------
-1