SQL 使用Cursor(游標)遍歷結果集


使用Cursor(游標)可以在存儲過程中遍歷select 結果集,對其進行相關的操作。

Cursor(游標)語法格式

DECLARE 游標名稱 CURSOR FOR SELECT 字段1,字段2,字段3,... FROM 表名 WHERE ...
OPEN 游標名稱
FETCH NEXT FROM 游標名稱 INTO 變量名1,變量名2,變量名3,...
WHILE @@FETCH_STATUS=0
        BEGIN
                  SQL語句執行過程... ...
                  FETCH NEXT FROM 游標名稱 INTO 變量名1,變量名2,變量名3,...
        END
CLOSE 游標名稱
DEALLOCATE 游標名稱 (刪除游標)

Cursor(游標)使用示例代碼

--創建一個table1結構如下:
id int 
name varchar(50)
age int 
--要求:使用Cursor進行循環使每條數據age+1
declare @id int
declare @name varchar(50)
declare @age int
declare cursor1 cursor for         --定義游標cursor1
select * from table1               --使用游標的對象(跟據需要填入select文)
open cursor1                       --打開游標

fetch next from cursor1 into @id,@name,@age  --將游標向下移1行,獲取的數據放入之前定義的變量@id,@name中

while @@fetch_status=0           --判斷是否成功獲取數據
begin
update table1 set age=age+1
where id=@id                           --進行相應處理(跟據需要填入SQL文)

fetch next from cursor1 into @id,@name,@age  --將游標向下移1行
end

close cursor1                   --關閉游標
deallocate cursor1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM