SQL游标使用范例

如何使用游标
1)    定义游标语句 Declare <游标名> Cursor For
2)    创建游标语句 Open <游标名>
3)    提取游标列值、移动记录指针 Fetch <列名列表> From <游标名> [Into <变量列表>]
4)    使用@@Fetch_Status利用While循环处理游标中的行
5)    删除游标并释放语句 Close <游标名>/Deallocate <游标名>
6)    游标应用实例
--定义游标
Declare cur_Depart Cursor
For Select cDeptID,cDeptName From Department

--创建游标
Open cur_Depart
--移动或提取列值
Fetch From cur_Depart into @DeptID,@DeptName
--利用循环处理游标中的列值
While @@Fetch_Status=0
Begin
    Print @DeptID,@DeptName
    Fetch From cur_Depart into @DeptID,@DeptName
End
--关闭/释放游标
Close cur_Depart
Deallocate cur_Depart

DEMO:

  

DECLARE @ID INT,
  @Name Nvarchar(20)

DECLARE Test CURSOR FAST_FORWARD
FOR
 SELECT DISTINCT ID,pro FROM TestA

OPEN Test

WHILE 1=1
BEGIN
 FETCH NEXT FROM Test
 INTO @ID,@Name
 IF @@FETCH_STATUS <> 0 BREAK
 SELECT @ID ID,@Name Name
END
CLOSE Test
DEALLOCATE Test


 

原文地址:https://www.cnblogs.com/icebutterfly/p/1707674.html