create proc cursorTest@_id int=0,@_name varchar(50)=""as--建立遊標declare @cursor cursor--設定遊標欲操作的資料集set @cursor=cursor forselect _id,_name from usersopen @cursor--開啟遊標fetch next from @cursor into @_id,@_name--移動遊標指向到第一條資料,提取第一條資料存放在變數中while(@@fetch_status=0)begin--如果上一次操作成功則繼續迴圈print @_name--操作提出的資料fetch next from @cursor into @_id,@_name--繼續提下一行endclose @cursor--關閉遊標deallocate @cursor--刪除遊標
@@fetch_status=0 是遊標提取資料失敗,即資料提取結束到最後了。
遊標主要作用是,操作SQL查詢結果集。
以下為典型遊標的應用:
create proc cursorTest@_id int=0,@_name varchar(50)=""as--建立遊標declare @cursor cursor--設定遊標欲操作的資料集set @cursor=cursor forselect _id,_name from usersopen @cursor--開啟遊標fetch next from @cursor into @_id,@_name--移動遊標指向到第一條資料,提取第一條資料存放在變數中while(@@fetch_status=0)begin--如果上一次操作成功則繼續迴圈print @_name--操作提出的資料fetch next from @cursor into @_id,@_name--繼續提下一行endclose @cursor--關閉遊標deallocate @cursor--刪除遊標