3)、读取数据
FETCH [ NEXT | PRIOR | FIRST | LAST ] FROM { 游标名 | @游标变量名 } [ INTO @变量名 [,…] ]
参数说明:
NEXT 取下一行的数据,并把下一行作为当前行(递增)。由于打开游标后,行指针是指向该游标第1行之前,所以第一次执行FETCH NEXT操作将取得游标集中的第1行数据。NEXT为默认的游标提取选项。
INTO @变量名[,…] 把提取操作的列数据放到局部变量中。
列表中的各个变量从左到右与游标结果集中的相应列相关联。
各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。
4)、关闭游标
CLOSE mycursor
5)、删除游标
DEALLOCATE mycursor
具体例子
declare @id int --定义变量来保存ID号
declare @S float --定义变量来保存值
declare mycursor cursor for select * from tb_B --为所获得的数据集指定游标
open mycursor --打开游标
fetch next from mycursor into @id,@S --开始获得第一条数据
while(@@fetch_status=0) --如果数据集里一直有数据
begin
update tb_A set salary = (tb_A.salary + @S) where tb_A.id = @id
fetch next from mycursor into @id,@S --跳到下一条数据
end
close mycursor --关闭游标
deallocate mycursor --删除游标