@@CURSOR_ROWS (Transact-SQL)
适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例
它返回在连接上打开的上一个游标中当前拥有的限定行的数目。 为了提高性能,SQL Server 可异步填充大型键集和静态游标。 可调用 @@CURSOR_ROWS
以确定在调用 @@CURSOR_ROWS 时检索了游标符合条件的行数。
语法
@@CURSOR_ROWS
注意
若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。
返回类型
integer
返回值
返回值 | 描述 |
---|---|
-m | 游标被异步填充。 返回的值 (-m) 是键集中当前的行数m。 |
-1 | 游标为动态游标。 因为动态游标可反映所有更改,所以游标符合条件的行数不断变化。 游标不一定检索所有符合条件的行。 |
0 | 没有已打开的游标,对于上一个打开的游标没有符合条件的行,或上一个打开的游标已被关闭或被释放。 |
n | 游标已完全填充。 返回值 (n) 是游标中的总行数。 |
备注
如果异步打开最后一个游标,@@CURSOR_ROWS
返回负数。 如果 sp_configure cursor threshold 的值超过 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 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈