@@CURSOR_ROWS
返回连接上最后打开的游标中当前存在的合格行的数量。为提高性能,Microsoft® SQL Server™ 可以异步填充大键集和静态游标。可调用 @@CURSOR_ROWS,以确定当它被调用时,符合游标的行的数目被进行了检索。
返回值 | 描述 |
---|---|
-m | 游标被异步填充。返回值 (-m) 是键集中当前的行数。 |
-1 | 游标为动态。因为动态游标可反映所有更改,所以符合游标的行数不断变化。因而永远不能确定地说所有符合条件的行均已检索到。 |
0 | 没有被打开的游标,没有符合最后打开的游标的行,或最后打开的游标已被关闭或被释放。 |
n | 游标已完全填充。返回值 (n) 是在游标中的总行数。 |
语法
@@CURSOR_ROWS
返回类型
integer
注释
若最后打开的游标是异步打开的,则 @@CURSOR_ROWS 返回的值是负数。若 sp_configure cursor threshold 的值大于0,则键集驱动程序或静态游标被异步打开,且游标结果集中的行数大于游标阈值。
示例
下面的示例声明了一个游标,并且用 SELECT 显示 @@CURSOR_ROWS 的值。在游标打开前,设置值为 0,值 -1 则表示游标键集被异步填充。
use pubs
SELECT @@CURSOR_ROWS as 'aa'
DECLARE authors_cursor CURSOR FOR
SELECT au_lname FROM authors
OPEN authors_cursor
FETCH NEXT FROM authors_cursor
SELECT @@CURSOR_ROWS as 'bb'
CLOSE authors_cursor
DEALLOCATE authors_cursor
-----------
0
(1 row(s) affected)
au_lname
----------------------------------------
White
(1 row(s) affected)
-----------
-1
(1 row(s) affected)