数据库 游标

数据库 游标

导读: 文章数据库 游标的定义和使用方法

定义

官方解读:
结果集: 关系数据库中的操作会对整个行集起作用。 例如,由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行。 这种由语句返回的完整行集称为结果集。
游标: 应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。 这些应用程序需要一种机制以便每次处理一行或一部分行。 游标就是提供这种机制的对结果集的一种扩展。

解读:
可以对结果集进行遍历的指针, 可以指向结果集的一行数据或者部分行。

作用

使用游标(cursor)的一个主要的原因就是把整个结果集操作转换成单个记录处理方式。

  • 允许定位在结果集的特定行。

  • 从结果集的当前位置检索一行或一部分行。

  • 支持对结果集中当前位置的行进行数据修改。

  • 为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。

  • 为脚本、存储过程和触发器中的 Transact-SQL 语句提供访问结果集中数据的权限。

T-SQL

创建游标

1
2
3
DECLARE 游标名 CURSOR
FOR
SELECT 语句 #此处必须是SELECT语句

打开游标

1
OPEN 游标名称

读取游标

1
2
3
4
5
6
7
8
9
FETCH   
[ [ NEXT | PRIOR | FIRST | LAST
| ABSOLUTE { n | @nvar }
| RELATIVE { n | @nvar }
]
FROM
]
{ { [ GLOBAL ] cursor_name } | @cursor_variable_name }
[ INTO @variable_name [ ,...n ] ]
1
2
FETCH NEXT FROM curl
SELECT 'NEXT_FETCH执行情况'=@@FETCH_STATUS

关闭游标

1
CLOSE 游标名称

删除游标

游标关闭后定义还在,需要时可以再使用 OPEN 打开游标继续使用。若确定不再使用则使用 CLOSE 删除游标,释放占用系统中的资源。

1
DEALLOCATE 游标名称

数据库 游标
http://zanderchan666.github.io/2023/10/26/游标/
作者
Zander
发布于
2023年10月26日
许可协议