sqlserver2012——游标
游标:一种数据访问机制,允许用户访问单独的数据行而不是对整个行集进行操作。用户可以通过单独处理每一行逐条收集信息并对数据逐行进行操作,这样可以将降低系统开销。
游标主要有以下两部分:
游标结果集:由定义游标的select语句返回的行的集合
游标位置:指向这个结果集中的某一行的指针。
有标的特点:
游标返回一个完整的结果集,但允许程序设计语言只调用集合中的以行
允许定位在结果集的特定行
从结果集的当前位置检索一行或多行
提供脚本,存储过程和触发器中使用的访问结果集中数据的SQL语句
游标的声明
Declare cursor_name [INSENSITIVE] [SCROLL] CURSOOR For select_statement
举例说明
DECLARE STUDENT_CURSOR SCROLL CURSOR FOR select * From 学生信息 For read only 这样就声明了一个只读游标 DECLARE STUDENT_CURSOR SCROLL CURSOR FOR select * From 学生信息 For update 这样就声明了一个更改游标 要更新有标的时候必须释放游标 用 DEALLOCATE STUDENT_CURSOR
游标的操作步骤
1、打开游标 OPEN
2、检索游标FETCH。。。RELATIVE。。。。。。
3、关闭游标CLOSE
4、释放游标DEALLOCATE
declare stu_cursor scroll cursor for select 姓名 From 学生信息 declare @name VARCHAR(32) OPEN stu_cursor FETCH Next From stu_cursor Into @name print @name close stu_cursoor Deallocate stu_cursor
判断游标提取状态
@@Fetch_status
返回3种状态:
0:Fetch语句成功
-1:Fetch语句失败或行不在结果集中
-2:提取的行不存在
喝的不是酒,是心痛;抽的不是烟,是忧愁;