@@CURSOR_ROWS (Transact-SQL)

返回连接上打开的上一个游标中的当前限定行的数目。 为了提高性能,SQL Server 可异步填充大型键集和静态游标。 可调用 @@CURSOR_ROWS 以确定当其被调用时检索了游标符合条件的行数。

适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。

主题链接图标 Transact-SQL 语法约定

语法

@@CURSOR_ROWS

返回类型

integer

返回值

返回值

说明

-m

游标被异步填充。 返回值 (-m) 是键集中当前的行数。

-1

游标为动态游标。 因为动态游标可反映所有更改,所以游标符合条件的行数不断变化。 因此,永远不能确定已检索到所有符合条件的行。

0

没有已打开的游标,对于上一个打开的游标没有符合条件的行,或上一个打开的游标已被关闭或被释放。

n

游标已完全填充。 返回值 (n) 是游标中的总行数。

注释

如果上一个游标是异步打开的,则 @@CURSOR_ROWS 返回的数字是负数。 如果 sp_configure cursor threshold 的值大于 0,且游标结果集中的行数大于游标阈值,则异步打开键集驱动程序或静态游标。

示例

下面的示例声明了一个游标,并且使用 SELECT 显示 @@CURSOR_ROWS 的值。 在游标打开前,该设置的值为 0,值 -1 则表示游标键集被异步填充。

USE AdventureWorks2012;
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

请参阅

参考

游标函数 (Transact-SQL)

OPEN (Transact-SQL)