一般情况下,我们用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光标的基本使用相关推荐

  1. java全能速查宝典.chm_Java API 快速速查宝典

    ava API 快速速查宝典 作者:明日科技,陈丹丹,李银龙,王国辉 著 出版社:人民邮电出版社 出版时间:2012年5月 Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际问 ...

  2. pymysql 增删改 查 索引

    pymysql 模块的使用 pip install pymysql username = input ("请输入用户") pwd = input ("请输入密码" ...

  3. mysql分页查询出租房屋信息_分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)...

    分页查询信息 使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目时一个简单的运用eclipse ...

  4. JAVA程序开发参考手册

    <!--包装数据类型 ->//javalangInteger--整数类 //bitCount方法--获取二进制补码中位的数量 int i = 10;int count = Integer. ...

  5. 认识VF--Visual FoxPro 漫谈(轉)

    目录 前言 Visual FoxPro是什么 Visual FoxPro 已经过时了吗 面向对象与面向过程之争 面向记录与面向集合之争 产品定位导致Visual FoxPro变化不易为人们感觉.微软要 ...

  6. 认识VF--Visual FoxPro 漫谈

    BOE.COM Article Resource News Links About US      文章标题 Visual FoxPro 漫谈 作品来源 BOE 数据网络工作室 创建日期 2001年0 ...

  7. JAVA API个各种方法

    熟练掌握常用类及方法 String str1.startsWith(str2) 判断str1是否以str2开头,返回true或false str1.endsWith(str2) 判断str1是否以st ...

  8. pathon爬虫基础

    我的学习记录 2020.3.19 1.爬虫请求网页:request方法 . requests.get() import requests url='https://www.baidu.com/' re ...

  9. oracle plsql 使用

    在PLSQL, sql语句中 where 带有中文的查询条件查询不到数据 发现是PLSQL字符编码问题.解决办法就是设置一个系统环境变量就好了.右击"计算机"-"属性&q ...

最新文章

  1. Python全家福,这些库你认识哪些?
  2. 将Mongodb部分数据导入mysql数据库
  3. mysql_upgrade 升级_采用MySQL_upgrade升级授权表方式升级
  4. UA MATH567 高维统计I 概率不等式3 亚高斯性与亚高斯范数
  5. Eclipse新建Maven项目没有web.xml
  6. 大话设计模式之策略模式
  7. 实现高性能稳定的socket tcp通讯经验分享
  8. android 自定义组合键,自定义快捷操作 安卓虚拟Home键设置技巧
  9. 人生轻似梦,芳华淡随风(转)
  10. Jmeter查看结果树
  11. 绕过cdn探测真实ip方法大全
  12. JAVA基于UDP的一个聊天程序
  13. mysql一张表有几个主键_一张表可以有多少个主键
  14. vulnhub-Tiki - 类oscp靶机攻略1
  15. 解决电脑右侧数字键盘无法打出数字问题
  16. Batch Normalization反方向传播求导
  17. 朱松纯团队新作:让AI「读懂」人类价值观!登上Science Robotics
  18. 支付系统设计包含:账户,对账,风控...
  19. 港科夜闻|香港科技大学参与共建「粤港水安全保障联合实验室」,开展水资源风险评估等方面交叉研究和成果转化...
  20. UE5建筑可视化室内场景模型 Evermotion – Archinteriors for UE vol. 8

热门文章

  1. jsoup的Node类
  2. [BalticOI2014]Friends/[BZOJ4287]新三个和尚
  3. Mobile端Catalog下面Category的配置步骤
  4. Redis入门到高可用(十一)—— 慢查询
  5. CPU 漏洞补丁对内核性能影响:4.15 比 4.11 快 7-9%
  6. 实战自制Linux操作系统
  7. Xcode7 插件制作入门
  8. 【物联网智能网关-08】TinyGUI和WPF汉字显示技术比较
  9. [转帖] bat方式遍历目录内的文件
  10. LR11中web_save_timestamp_param