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:提取的行不存在

  

原文地址:https://www.cnblogs.com/javier520/p/10897144.html