以下是使用游标的一种最直接的方式:
代码运行条件:一张Tb_paperInfo(paperID,paperName)表


--声明一个标识为c的游标,该游标是从tb_paperInfo表中查出两列
declare c cursor for select top 3 paperID,paperName from tb_paperinfo

--打开游标c
open c

--声明两个变量,作为临时存储相应的字段的值
declare @paperID varchar(20);
declare @paperName varchar(20);

--@@FETCH_STATUS返回游标的位置,用来标识该游标是否已达到末尾或是否还在开关
--
在未执行Fetch Next From c时,@@Fetch_Status为-1
FETCH NEXT FROM C into @paperID,@paperName  ----注意:此时into 之后的变量的个数对应于select 出来的列的个数,执行完该语句之后@@Fetch_Status返回值0


declare @i int;
set @i=1;
while @@FETCH_STATUS=0
    
begin
        
/*在此处,你可以通过使用@paperID和@paperName变量来做你想要的事*/
        
print ''  + cast(@i as  varchar(20)) +  ' 条记录的paperID:' +  @paperID
        
print ''  + cast(@i as  varchar(20)) +  ' 条记录的paperName:' +  @paperName
        
        
--通过fetch next from 语句取出下一条记录
        fetch next from c into @paperID,@paperName
        
set @i=@i+1;
    
end

--关闭游标,若想再用它,还可以用open的方法再一次打开它(要在释放之前打开)
close c

--释放游标
deallocate c
posted on 2007-10-13 16:21  是谁啊?  阅读(1684)  评论(1编辑  收藏  举报