sql server 中游标的作用?麻烦简单举例说明。
展开全部
游标说简单点都是设置一个数据表的行指针,然后使用循环等操作数据
以下是一个示例
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中就可能需要使用游标来做了
说游标的优越性,很难说,就比如上面的功能点,用程序代码直接读出所有表记录,然后拼接字符串的效率肯定比游标快得多。所以还是需要结合业务逻辑,具体情况具体分析。
还有数据量的问题,其实数据量越大,游标带来的性能消耗也越大,反而数据量越少游标性能越好。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询