在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力。
例如: 有一个数据集(表tab1,结构如id,name,sex,age)
declare my_cursor cursor for --定义游标
select * from tab1 --使用游标的对象
open my_cursor --打开游标
declare @id int,@name varchar(20),@set char(2),@age int --定义变量
fetch next from my_cursor into @id,@name,@sex,@age --将游标向下移1行,获取的数据放入之前定义的变量@id,@name,@sex,@age中
while (@@fetch_status=0) --判断是否成功获取数据(循环)
begin
print 'id='+convert(varchar(10),@id)+' name='+@name+' sex='+@sex+' age='+convert(varchar(10),@age) ; --注:我认为这里是使用游标的重点,你可以对每一条数据进行你的操作(如,update tab1 set name='aaa' where name='bbb')
fetch next from my_cursor into @id,@name,@sex,@age --将游标向下移1行,获取的数据放入之前定义的变量@id,@name,@sex,@age中(注:如果忘了这个,将会进入死循环)
end
close my_cursor --关闭游标
deallocate my_cursor --释放(删除)游标
很简单的一个应用,初级学习了解游标。