游标概述
是什么?
是一种数据访问机制,它允许用户访问单独的数据行,而不是对整个行集进行操作,用户可以通过单独处理每一行逐条收集信息并对数据行集进行操作,用户可以通过单独处理每一行逐条收集信息并对数据逐行进行操作,这样可以降低系统开销和潜在的阻隔情况
主要包括两部分:
1、游标结果集:有定义游标的SELECT语句返回的行的集合
2、游标位置:指向这个结果集中的某一行的指针
使用的意义
1、游标返回一个完整的结果集,允许调用一行
2、允许定位在结果集的特定行
3、从结果集的当前位置检索一行或多行
4、支持对数据行进行修改
5、可以为其他用户对显示在结果集中的数据库所做的更改提供不同级别的可见性支持
6、提供脚本,存储过程和触发器中使用的访问结果集中数据的T SQL 语句
游标的声明
语法格式:
DECLARE cursor_name+类型
For select
举例声明游标:
declare student_cursor scroll cursor
for
select * from 学生信息
for read only
操作游标
步骤:
Open+关键字
检索游标
Fetch
标识
Relative
关闭游标
Close
释放游标
Deallocate
举例:
declare stu_cursor scroll cursor for
select 姓名 from 学生信息
declare @name varchar(20)
open stu_cursor
fetch last from stu_cursor
into @name
print @name
判断游标提取状态
@@fetch_status
取值:
1、返回0,数据提取成功
2、-1、语句失败或行不在结果集中
3、-2 提取的行不存在
举例:
declare stu_cursor scroll cursor for
select 姓名 from 学生信息
open stu_cursor
declare @name varchar(20)
fetch next from stu_cursor
into @name
if @@fetch_status=0
print @name
else
print'提取数据错误'
close stu_cursor
deallocate stu_cursor