游标是什么

游标对查询出来的结果集作为一个单元来有效的处理,游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置的数据进行修改。

游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字,可以用fetch 语句逐一从游标中获取记录,并赋给变量,对游标中的数据进行依次读取处理。

显然,使用游标可以对数据集进行循环处理,在一些特定的情况下,是非常有作用的,但是游标存在效率问题,特别是存储数据量比较大时;

在具体应用中,如果数据表中有几十万或者更大量的数据时,游标的效率是要考虑的。

因为游标相当于在这么大的表中不停地查找,直到你想要的结果,实际上与你一个特征一个特征地取数据是一样的,只是那样子你也穷举无数种可能,而游标在这种情况下会按一种你定义的规则自动进行。

例:

declare @id nvarchar(20)  --定义变量来保存ID号

declare @A float                  --定义变量来保存值

declare mycursor cursor for select * from tb_c   --为所获得的数据集指定游标

open mycursor                   --打开游标

fetch next from mycursor  into @id,@A   --开始抓第一条数据

while(@@fetch_status=0)     --如果数据集里一直有数据

begin

 select tb_b.name,(tb_b.gz + @A) from tb_b where tb_b.id = @id   --开始做想做的事(什么更新呀,删除呀)

        fetch next from mycursor into @id,@A     --跳到下一条数据

end

close mycursor        --关闭游标

deallocate mycursor  --删除游标

fetch next from mySet

end

close mySet

deallocate mySet

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值