转,关于游标

1、什么情况下使用游标?
   答:当查询的结果是一个集合(很多元组),就必须用游标逐一读取,相当于一个指针,可以在SQL语句中依次遍历某个select的结果集的每行记录每个字段,游标是可以从结果集中每次提取一条记录的机制,因为很多程序不具备操作一个集合的能力。
2、游标格式:
declare @变量1 变量1类型,@变量2 变量2类型,...,@变量n 变量n类型;

declare 游标名称 cursor for
select 字段名1,字段名2,...,字段名n
from [数据库名].表名
where条件
[排序];

open 游标名称;

fetch next from 游标名称 into @变量1,@变量2,...,@变量n;

while @@fetch_status=0
begin
 sql语句
end
close 游标名称;
deallocate 游标名称;
3、变量:
@@CURSOR_ROWS:整型变量,表示在当前连接中打开的游标中的行数量;
@@FETHC_STATUS:标记变量,表示当前游标指针的状态。
4、游标示例:
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 --删除游标  
原文地址:https://www.cnblogs.com/santizhou/p/7442715.html