如何使用游标
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