游标定义
游标是什么?
游标是SQL 的一种数据访问机制。
可以将游标简单的看成是查询的结果集的一个指针,可以根据需要在结果集上面来回滚动,浏览需要的数据。
游标得作用
1.遍历数据行;
2.保存查询结果,方便下文调用。概念中提到使用游标会保存数据行的副本,那么创建游标后,下文查询即可从副本中查询,要比直接查数据库快很多。
游标例子
引用表
表名 books
列表名 | 数据类型 |
---|---|
ID | ID |
Name | varchar(50) |
Remark | varchar(100) |
Price | decimal(18, 2) |
Levels | nvarchar(50) |
根据价格设置每本书的等级
价格小于 50 便宜
大于等于 50-100 中等
大于等于 100 贵
创建游标
declare cur_set_lever CURSOR
for select id,Price from books --定义游标
打开游标
open cur_set_lever
获取数据
declare @id int
declare @price decimal(18,2)
fetch next from cur_set_lever into @id,@price
print @id
循环获取
while(@@FETCH_STATUS=0)
begin
--修改等级
if(@price<50)
update books set Levels='便宜' where id=@id
else if(@price<100)
update books set Levels='中等' where id=@id
else
update books set Levels='贵' where id=@id
fetch next from cur_set_lever into @id,@price
end
关闭游标
close cur_set_lever
释放游标
deallocate cur_set_lever