以下是使用遊標的一種最直接的方式:
代碼運行條件:一張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