文档介绍:第12章游标
游标的基本概念
游标的建立及使用
游标的基本概念
游标:每次处理SELECT语句返回的结果集的一行或部分行,遍历程序。
游标支持以下功能:
①在结果集中定位特定行;
②从结果集的当前位置检索行;
③支持对结果集中当前位置的行进行数据修改。
游标的建立及使用
游标建立及使用的步骤:
1、使用DECLARE CURSOR语句声明一个游标;
DECLARE 游标名 CURSOR
FOR
查询语句
[ FOR READ ONLY |UPDATE OF 列名称]
2、使用OPEN语句执行游标
OPEN 游标名
3、使用FETCH语句,从结果集中检索单独行
FETCH [ NEXT | PRIOR | FIRST | LAST ]
FROM 游标名
[ INTO 变量名,……]
4、使用UPDATE或DELETE语句修改行
5、使用CLOSE语句关闭游标,结束动态游标的
操作并释放资源,可用OPEN再次打开。
CLOSE 游标名
6、使用DEALLOCATE语句从当前的会话中移除游
标的引用,不能用OPEN打开,只能使用
DECLARE从新声明。
DEALLOCATE 游标名
@***@FETCH_STATUS——游标状态变量
▲ 0 FETCH语句成功
▲-1 FETCH语句失眠或此行不在结果集中
▲-2 被提取的行不存在
例1、声明一游标,从Course表中检索所有记录。
USE Xk
DECLARE CrsCourse CURSOR
FOR
SELECT * FROM Course ORDER BY CouNo
OPEN CrsCourse
FETCH NEXT FROM CrsCourse
UPDATE Course SET LimitNum=22
WHERE CURRENT OF CrsCourse
CLOSE CrsCourse
DEALLOCATE CrsCourse
例2、将值存入变量
USE Xk
DECLARE ***@CouNo varchar(3),***@CouName varchar(30)
DECLARE CrsCourse CURSOR
FOR
SELECT CouNo,CouName FROM Course
ORDER BY CouNo
OPEN CrsCourse
FETCH NEXT FROM CrsCourse
INTO ***@COuNo,***@CouName
PRINT '课程号:'+***@CouNo+'课程名称:'+***@CouName