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 --刪除游標