SQL光标的基本使用
一般情况下,我们用SELECT这些查询语句时,都是针对的一行记录而言, 如果要在查询分析器中对多行记录(即记录集)进行读取操作时,则需要使用到游标或WHILE等循环
游标的类型: 1、静态游标(不检测数据行的变化) 2、动态游标(反映所有数据行的改变) 3、仅向前游标(不支持滚动) 4、键集游标(能反映修改,但不能准确反映插入、删除)
游标使用顺序: 1、定义游标 2、打开游标 3、使用游标 4、关闭游标 5、释放游标
Transact-SQL: declare 游标名 cursor [LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][STATIC | KEYSET | DYNAMIC ] [READ_ONLY | SCROLL_LOCKS] for selet语句 [for update[of 列名[,列名]] 注:LOCAL 局部游标 GLOBAL 全局游标 FORWARD_ONLY 仅向前 SCROLL 滚动 STATIC 静态 KEYSET 键集 DYNAMIC 动态 READ_ONLY 只读 SCROLL_LOCKS 锁定游标当前行
获取游标的数据 FETCH [[NEXT | PRIOR | FIRST | LAST | ABSOLUTE{ n | @nvar | RELATIVE { n | @nvar}] From ] 游标名 [into 变量] 注: NEXT 下一行 PRIOR 上一行 FIRST 第一行 LAST 最后一行 ABSOLUTE n 第n行 RELATIVE n 当前位置开始的第n行 into 变量 把当前行的各字段值赋值给变量
游标状态变量: @@fetch_status 游标状态 0 成功 -1 失败 -2 丢失 @@cursor_rows 游标中结果集中的行数 n 行数 -1 游标是动态的 0 空集游标 操作游标的当前行: current of 游标名
例1:利用游标对查询的数据集进行遍历
use pubs
go
declare @auid char(12),@aulname varchar(20),@aufname varchar(20), @st char(2),@auinfo varchar(50)
declare auth_cur cursor for
select au_id, au_lname, au_fname, state
from authors
open auth_cur
fetch next from auth_cur into @auid,@aulname,@aufname, @st
while (@@fetch_status=0)
begin
print '作者编号: '+@auid
print '作者姓名: '+@aulname+','+@aufname
print '所在州: '+@st
print '--------------------------'
fetch next from auth_cur into @auid,@aulname,@aufname, @st
end
close auth_cur
deallocate auth_cur
例2:利用游标修改、删除数据
declare auth_cur cursor scroll for
select au_id, au_lname, au_fname, state
from authors for update of au_lname
open auth_cur
declare @rowcount int
set @rowcount = 6
fetch absolute @rowcount from auth_cur --将变量@rowcount标识的行设置为当前行
--下面1行是利用游标进行修改操作
update authors set au_lname='张' where current of auth_cur --修改游标中的当前行
--下面1行是利用游标进行删除操作
delete from authors where current of auth_cur
转载于:https://www.cnblogs.com/ciangcic/p/3526943.html
SQL光标的基本使用相关推荐
- java全能速查宝典.chm_Java API 快速速查宝典
ava API 快速速查宝典 作者:明日科技,陈丹丹,李银龙,王国辉 著 出版社:人民邮电出版社 出版时间:2012年5月 Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际问 ...
- pymysql 增删改 查 索引
pymysql 模块的使用 pip install pymysql username = input ("请输入用户") pwd = input ("请输入密码" ...
- mysql分页查询出租房屋信息_分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)...
分页查询信息 使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目时一个简单的运用eclipse ...
- JAVA程序开发参考手册
<!--包装数据类型 ->//javalangInteger--整数类 //bitCount方法--获取二进制补码中位的数量 int i = 10;int count = Integer. ...
- 认识VF--Visual FoxPro 漫谈(轉)
目录 前言 Visual FoxPro是什么 Visual FoxPro 已经过时了吗 面向对象与面向过程之争 面向记录与面向集合之争 产品定位导致Visual FoxPro变化不易为人们感觉.微软要 ...
- 认识VF--Visual FoxPro 漫谈
BOE.COM Article Resource News Links About US 文章标题 Visual FoxPro 漫谈 作品来源 BOE 数据网络工作室 创建日期 2001年0 ...
- JAVA API个各种方法
熟练掌握常用类及方法 String str1.startsWith(str2) 判断str1是否以str2开头,返回true或false str1.endsWith(str2) 判断str1是否以st ...
- pathon爬虫基础
我的学习记录 2020.3.19 1.爬虫请求网页:request方法 . requests.get() import requests url='https://www.baidu.com/' re ...
- oracle plsql 使用
在PLSQL, sql语句中 where 带有中文的查询条件查询不到数据 发现是PLSQL字符编码问题.解决办法就是设置一个系统环境变量就好了.右击"计算机"-"属性&q ...
最新文章
- Python全家福,这些库你认识哪些?
- 将Mongodb部分数据导入mysql数据库
- mysql_upgrade 升级_采用MySQL_upgrade升级授权表方式升级
- UA MATH567 高维统计I 概率不等式3 亚高斯性与亚高斯范数
- Eclipse新建Maven项目没有web.xml
- 大话设计模式之策略模式
- 实现高性能稳定的socket tcp通讯经验分享
- android 自定义组合键,自定义快捷操作 安卓虚拟Home键设置技巧
- 人生轻似梦,芳华淡随风(转)
- Jmeter查看结果树
- 绕过cdn探测真实ip方法大全
- JAVA基于UDP的一个聊天程序
- mysql一张表有几个主键_一张表可以有多少个主键
- vulnhub-Tiki - 类oscp靶机攻略1
- 解决电脑右侧数字键盘无法打出数字问题
- Batch Normalization反方向传播求导
- 朱松纯团队新作:让AI「读懂」人类价值观!登上Science Robotics
- 支付系统设计包含:账户,对账,风控...
- 港科夜闻|香港科技大学参与共建「粤港水安全保障联合实验室」,开展水资源风险评估等方面交叉研究和成果转化...
- UE5建筑可视化室内场景模型 Evermotion – Archinteriors for UE vol. 8
热门文章
- jsoup的Node类
- [BalticOI2014]Friends/[BZOJ4287]新三个和尚
- Mobile端Catalog下面Category的配置步骤
- Redis入门到高可用(十一)—— 慢查询
- CPU 漏洞补丁对内核性能影响:4.15 比 4.11 快 7-9%
- 实战自制Linux操作系统
- Xcode7 插件制作入门
- 【物联网智能网关-08】TinyGUI和WPF汉字显示技术比较
- [转帖] bat方式遍历目录内的文件
- LR11中web_save_timestamp_param