关于SQL游标中的@@CURSOR_ROWS变量

        今天在写一个存储过程的时候,需要得到 游标读取出的行数,在看了相关资料后决定用@@CURSOR_ROWS来读取,没想到测方式该变量的输出结果使终是-1,让我很是郁闷,于是又重新去查找资料,终于得到了满意的答案,贴出来与大家分享。

       在 游标被成功打开之后,@@CURSOR_ROWS 全局变量将用来记录 游标内数据行数。为了提高性能,MS SQL SERVER 允许以异步方式从基础表向KEYSET 或静态 游标读入数据,即如果MS SQL SERVER 的查询优化器估计从基础表中返回给 游标的数据行已经超过sp_configure cursor threshold 参数值,则MS SQL SERVER 将启动另外一个独立的线程来继续从基础表中读入符合 游标定义的数据行,此时可以从 游标。中读取数据进行处理而不必等到所有的符合 游标定义的数据行都从基础 表中读入 游标 @@CURSOR_ROWS 变量存储的正是在调用@@CURSOR_ROWS 时, 游标已从基础表读入的数据行。@@CURSOR_ROWS 的返回值有以下四个,如表13-1 所示。

        如果所打开的 游标在声明时带有SCROLL 或INSENSITIVE 保留字,那么@@CURSOR_ROWS 的值为正数且为该 游标的所有数据行。如果未加上这两个保留字中的一个,则@@CURSOR_ROWS 的值为-1, 说明该 游标内只有一条数据记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值