在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条T_SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。如果曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所得到的文件句柄一样,只要文件打开成功,该文件句柄就可代表该文件。对于游标而言,其道理是相同的。可见游标能够实现按与传统程序读取平面文件类似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。
游标使用示例
create proc cursorTest
@_id int=0,
@_name varchar(50)=''
as
--创建游标
declare @cursor cursor
--设定游标欲操作的数据集
set @cursor=cursor for
select _id,_name from users
--打开游标
open @cursor
--移动游标指向到第一条数据,提取第一条数据存放在变量中
fetch next from @cursor into @_id,@_name
--如果上一次操作成功则继续循环
while(@@fetch_status=0)begin
--操作提出的数据
print @_name
--继续提下一行
fetch next from @cursor into @_id,@_name
end
--关闭游标
close @cursor
--删除游标
deallocate @curso