只为成功找方向,不为失败找借口

每天都不能停止前进的脚步
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL游标使用范例

Posted on 2010-04-08 18:36  冰碟  阅读(244)  评论(0编辑  收藏  举报

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