1.3.2 打开游标 非常简单,我们就打开刚才我们声明的游标mycursor OPEN mycursor 1.3.3读取数据 FETCH [ NEXT | PRIOR | FIRST | LAST] FROM { 游标名 | @游标变量名 } [ INTO @变量名 [,…] ] 参数说明: NEXT 取下一行的数据,并把下一行作为当前行(递增)。由于打开游标后,行指针是指向该游标第1行之前,所以第一次执行FETCH NEXT操作将取得游标集中的第1行数据。NEXT为默认的游标提取选项。 INTO @变量名[,…] 把提取操作的列数据放到局部变量中。 列表中的各个变量从左到右与游标结果集中的相应列相关联。 各变量的数据类型必须与相应的结果列的数据类型匹配或是结果列数据类型所支持的隐性转换。变量的数目必须与游标选择列表中的列的数目一致。 1.3.4关闭游标 CLOSE mycursor 1.3.5删除游标 DEALLOCATE mycursor
实例1
declare @id nvarchar(20) --定义变量来保存ID号 declare @A float --定义变量来保存值 declare mycursor cursor for select * from tb_c --为所获得的数据集指定游标 open mycursor --打开游标 fetch next from mycursor into @id,@A --开始抓第一条数据 while(@@fetch_status=0) --如果数据集里一直有数据 begin select tb_b.name,(tb_b.gz + @A) from tb_b where tb_b.id = @id --开始做想做的事(什么更新呀,删除呀) fetch next from mycursor into @id,@A --跳到下一条数据 end close mycursor --关闭游标 deallocate mycursor --删除游标