sql游标使用入门

发布时间:2020-06-29编辑:脚本学堂
本文介绍了sql游标的基础知识,包括游标的缺点、游标的定义、游标的参数、游标快速入门实例,需要的朋友参考下。

游标是什么

游标是一个定义在特定数据集上的指针,可以控制这个指针遍历数据集,或仅仅是指向特定的行,所以游标是定义在以Select开始的数据集上的。

普通的sql语句是面向集合的,游标是面向行的。比如要取100条数据,通过普通的sql语句是一次取出所有行,而游标是一行一行取出的。

游标的缺点:
在性能上,游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量。

游标的定义:
游标变量支持两种方式赋值,定义时赋值和先定义后赋值,定义游标变量像定义其他局部变量一样,在游标前加”@”。

注意,如果定义全局的游标,只支持定义时直接赋值,并且不能在游标名称前面加“@”,两种定义方式:
 

复制代码 代码示例:
--定义时赋值(支持全局变量
declare myname cursor for
select * from T
--先定义,后赋值(不支持全局变量)
declare @myname cursor
set @myname=cursor for
select * from T

游标的参数:
FORWARD_ONLY(默认)--只能从数据集开始向数据集结束的方向读取,FETCH NEXT是唯一的选项;
SCROLL --支持游标在定义的数据集中向任何方向,或任何位置移动。

游标使用快速入门:
 

复制代码 代码示例:
--定义游标
declare myname cursor for
select id,data from T
--打开游标
open myname
--定义需要的参数
declare @id int
declare @data varchar(50)
--获取下一行
fetch next from myname into @id,@data
--打印结果
print @id
print @str
--关闭游标
close myname
--释放游标
deallocate myname