sql server 中游标的作用?麻烦简单举例说明。

 我来答
百度网友e7b6a5ad0
推荐于2017-11-26 · TA获得超过175个赞
知道小有建树答主
回答量:222
采纳率:100%
帮助的人:209万
展开全部

游标说简单点都是设置一个数据表的行指针,然后使用循环等操作数据

以下是一个示例

create procedure UpdateValue    --存储过程里面放置游标
as
begin
   
    declare UpdateCursor cursor    --声明一个游标,查询满足条件的数据
        for select 主键,SD_VAL from EQ_SD_D
       
    open UpdateCursor    --打开
       
    declare @id int,@SD_VAL nvarchar(20)  --声明一个变量,用于读取游标中的值
        fetch next from UpdateCursor into @id,@SD_VAL
       
    while @@fetch_status=0    --循环读取
        begin
        update EQ_SD_D set name=@SD_VAL where id=@id
        fetch next from UpdateCursor into @id,@SD_VAL
        end
       
    close UpdateCursor    --关闭
       
    deallocate UpdateCursor    --删除
       
end

这里是一个教学

http://www.cnblogs.com/moss_tan_jun/archive/2011/11/26/2263988.html 

追问
我一直觉得对于少数数据游标能做的其他sql语句也能实现!请问你有什么好例子来说明游标的优越性吗?
追答
游标主要是用来完成复杂的业务逻辑
比如sqlserver中树型查询,比如如下业务点
数据表
编号 名称 父编号
1 中国 0
2 上海市 1
3 虹口区 2
4 杨浦区 2

显示结果
/中国/上海市/虹口区
/中国/上海市/杨浦区

类似这样的业务点,在sqlserver中就可能需要使用游标来做了

说游标的优越性,很难说,就比如上面的功能点,用程序代码直接读出所有表记录,然后拼接字符串的效率肯定比游标快得多。所以还是需要结合业务逻辑,具体情况具体分析。

还有数据量的问题,其实数据量越大,游标带来的性能消耗也越大,反而数据量越少游标性能越好。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式