SQL Server CURSOR游标使用方法
时间:2020-04-11
本文章向大家介绍SQL Server CURSOR游标使用方法,主要包括SQL Server CURSOR游标使用方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
基本结构
DECLARE Employee_Cursor CURSOR FOR SELECT EmpID, JobID FROM Employee OPEN Employee_Cursor FETCH NEXT FROM Employee_Cursor WHILE @@FETCH_STATUS = 0 BEGIN --DO SOMETHING WITH CURSOR FETCH NEXT FROM Employee_Cursor END CLOSE Employee_Cursor DEALLOCATE Employee_Cursor
关键步骤
- 声明游标:DECLARE [游标名称] CURSOR FOR [SELECT语句],FOR后面的查询结果就是游标的内容,后续将对其逐行提取;
- 打开游标:OPEN [游标名称],名称与上文保持统一;
- 提取一行:FETCH NEXT FROM [游标名称],提取第一步的查询结果,每执行一次FETCH NEXT依次提取一行;
- 判断状态:执行一次FETCH NEXT之后,通过系统变量@@FETCH_STATUS指示操作结果:提取成功返回0,失败返回-1(如已到达最后一行);
- 关闭游标:CLOSE [游标名称]
- 释放游标:DEALLOCATE [游标名称]
@@FETCH_STATUS
状态值
返回值 | 说明 |
---|---|
0 | FETCH 语句成功。 |
-1 | FETCH 语句失败或行不在结果集中。 |
-2 | 提取的行不存在。 |
-9 | 游标未执行提取操作。 |
-
注意事项
- WHILE循环开始前,执行一次FETCH NEX;循环体结束前,也需要执行一次FETCH NEXT,否则@@FETCH_STATUS并没有更新。
- 结束前,必须执行CLOSE和DEALLOCATE命令。
- FETCH NEXT已到达最后一行,后续@@FETCH_STATUS会返回-1,但游标仍然是最后一行数据。
应用方法
DO SOMETHING WITH CURSOR
一般会将提取到的值赋给变量,用于执行相关任务。
原文地址:https://www.cnblogs.com/monsino/p/12679299.html
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- Linux实现文件内容去重及求交并差集
- Linux rpm、yum指令及使用方法详解
- Linux下遇到PyCurl的错误解决方法
- Linux cut 命令详解
- linux下安装ffmpeg的详细教程
- 如何利用Gitlab-ci持续部署到远程机器(详细教程)
- Linux常用命令之grep命令用法详解
- 详解Linux动态库生成与使用指南
- Vue 3 入门基础知识
- 在Linux系统中使用Vim读写远程文件的命令详解
- Vue.js实现咸鱼底部Tab凸起|vue自定义导航条组件
- 在Linux中查看所有正在运行的进程的方法
- Apache跨域资源访问报错问题解决方案
- Windows Telemetry服务特权提升
- 滥用DComposition在外部窗口上渲染