@@CURSOR_ROWS (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
此函式會傳回目前在連接上開啟的最後一個數據指標中符合資格的數據列數目。 為了提升效能,SQL Server 可以非同步方式擴展大型索引鍵集和靜態資料指標。 @@CURSOR_ROWS
可以呼叫 來判斷在呼叫時 @@CURSOR_ROWS
擷取符合數據指標的數據列數目。
語法
@@CURSOR_ROWS
傳回類型
int
傳回值
傳回值 | 描述 |
---|---|
-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 (No column name) ROWSTAT
--------- ----------------- ---------
Sánchez -1 NULL
-----------
-1