打开游标游标在声明以后,如果要从游标中读取数据必须打开游标。打开一个Transact-SQL服务器游标使用OPEN 命令,其语法规则为:

  OPEN { { [GLOBAL] cursor_name } | cursor_variable_name}

  各参数说明如下:

  •GLOBAL

  定义游标为一全局游标。

  •cursor_name

  为声明的游标名字。如果一个全局游标和一个局部游标都使用同一个游标名,则如果使用GLOBAL 便表明其为全局游标,否则表明其为局部游标。

  •cursor_variable_name

  为游标变量。当打开一个游标后时,MS SQL SERVER 首先检查声明游标的语法是否正确,如果游标声明中有变量,则将变量值带入。

  在打开游标时,如果游标声明语句中使用了INSENSITIVE 或STATIC 保留字,则OPEN产生一个临时表来存放结果集;如果在结果集中任何一行数据的大小超过MS SQL SERVER定义的最大行尺寸时,OPEN 命令将失败;如果声明游标时作用了KEYSET 选项,则OPEN 产生一个临时表来存放键值。所有的临时表都存在tempdb 数据库中。

  在游标被成功打开之后,@@CURSOR_ROWS 全局变量将用来记录游标内数据行数。为了提高性能,MS SQL SERVER 允许以异步方式从基础表向KEYSET 或静态游标读入数据,即如果MS SQL SERVER 的查询优化器估计从基础表中返回给游标的数据行已经超过sp_configure cursor threshold 参数值,则MS SQL SERVER 将启动另外一个独立的线程来继续从基础表中读入符合游标定义的数据行,此时可以从游标。中读取数据进行处理而不必等到所有的符合游标定义的数据行都从基础表中读入游标 @@CURSOR_ROWS 变量存储的正是在调用@@CURSOR_ROWS 时,游标已从基础表读入的数据行。@@CURSOR_ROWS 的返回值有以下四个,如表13-1 所示。

  

  如果所打开的游标在声明时带有SCROLL 或INSENSITIVE 保留字,那么@@CURSOR_ROWS 的值为正数且为该游标的所有数据行。如果未加上这两个保留字中的一个,则@@CURSOR_ROWS 的值为-1, 说明该游标内只有一条数据记录。

MS SQL入门基础:打开游标相关推荐

  1. MS SQL入门基础:管理触发器

    如果要显示作用于表上的触发器究竟对表有哪些操作,必须查看触发器信息.在MS SQL Server 中,有多种方法查看触发器信息.在本节我们将介绍两种常用的方法,即通过MS SQL Server 的管理 ...

  2. MS SQL入门基础:存储过程概述

    在大型数据库系统中,存储过程和触发器具有很重要的作用.无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合.就 本质而言,触发器也是一种存储过程.存储过程在运算时生成执行方式,所以,以后对其 ...

  3. MS SQL入门基础:删除数据

    11.2.1 DELETE 语法 DELETE 语句用来从表中删除数据,其语法为: 各参数说明如下: FROM 此参数为可选选项,用于连接DELETE 关键字和要删除数据的对象名称. table_na ...

  4. MS SQL入门基础:数据查询--SELECT语句

    数据库是为更方便有效地管理信息而存在的人们,希望数据库可以随时提供所需要的数据信息.因此,对用户来说,数据查询是数据 库最重要的功能.本章将讲述数据查询的实现方法. 在数据库中,数据查询是通过SELE ...

  5. MS SQL入门基础:数据库中的锁

    11.5.1 锁的概念 锁(Lock) 是在多用户环境下对资源访问的一种限制.机制当对一个数据源加锁后,此数据源就有了一定的访问限制.我们就称对此数据源进行了"锁定".在SQL S ...

  6. MS SQL入门基础:系统数据库

    SQL Server 2000 有四个系统数据库(System Databases):Master.Model.Msdb.Tempdb.这些系统数据库的文件存储在Microsoft SQL Serve ...

  7. MS SQL入门基础:sql 其它命令

    4.7.1 BACKUP BACKUP 命令用于将数据库内容或其事务处理日志备份到存储介质上(软盘.硬盘.磁带).等SQL Server 7.0 以前的版本用的是DUMP 命令来执行此功能,从SQL ...

  8. MS SQL入门基础:备份和恢复系统数据库

    系统数据库保存了有关SQL Server 的许多重要数据信息,这些数据的丢失将给系统带来极为严重的后果,所以我们也必须对系统数据库进行备份.这样一旦系统或数据库失败,则可以通过恢复来重建系统数据库.在 ...

  9. MS SQL入门基础:移动数据库

    在SQL Server 中可以使用拆分(Detach)和附加(Attach)的方法来移动数据库.拆分数据库是从服务器中移去逻辑数据库,但不会将操作系统中的数据库文件删除.附加数据库将会创建一个新的数据 ...

最新文章

  1. createDocumentFragment
  2. 在Eclipse添加Android兼容包( v4、v7 appcompat )
  3. MarkDown常用技巧总结
  4. JS 处理Json 时间带T 时间格式
  5. Mac平台下安装与配置MySQL
  6. 从贪心选择到探索决策:基于强化学习的多样性排序
  7. c# 之抽象工厂模式
  8. 苹果宣布将把语音助手Siri整合到Apple Music服务中
  9. matlab库函数大全
  10. 重装ubuntu系统后VS Code远程连接失败
  11. Spring Boot 2.x 切换 Servlet 嵌入式容器 Tomcat、Jetty、Undertow
  12. [渝粤教育] 三江学院 财务管理 参考 资料
  13. 2011最犀利语录大全
  14. oracle lob函数,Oracle可以处理LOB字段的常用字符函数
  15. android开源轮播图框架,最好用的轮播插件框架都在这里了,Github流行轮播框架...
  16. OSChina 周二乱弹 —— 糟糕 是喵动的感觉
  17. Three.js显示物体的运动轨迹
  18. C# textbox快捷键添加横杠
  19. Flare Network,跨越互操作性三难困境
  20. 【2020年4月9我和小峰子的聊天】

热门文章

  1. 查看eclipse中项目部署位置
  2. generatorConfig 指定列的java数据类型
  3. 【转】VB代码VB小程序:宇宙大爆炸演示
  4. 3D版pix2pix来了,画一只猫就能抱起来吸丨github
  5. 有个AI陪你一起写代码,是种怎样的体验?| 附ICLR论文
  6. 砸115亿元入局!后知后觉的欧洲重金建设AI,为赶中超美
  7. 然并卵,苹果还是那个掉队的巨头
  8. 怎么将文字转换成语音?
  9. Envoy 源码分析--network L4 filter manager
  10. Scala 语言学习之泛型(7)