代码运行条件:一张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