- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL-5-游标
1 VistaEdu 第五章 游标、事务 本章目标 游标的概述(1/3) T-SQL用游标(CURSOR)来管理SQL的select语句。游标是为处理这些语句而分配的一大块内存。 游标的一个常见的用法是保存查询结果以备以后使用。 一个游标结果集是通过执行SELECT 查询来建立的。 数据库游标允许你选择一组数据,通过翻阅这组数据记录(通常被称为数据集),检查每一个游标所在的特定的行。 游标的概述(2/3) 游标通过以下方式扩展处理结果集: 允许定位在结果集的特定行。 从结果集的当前位置检索一行或多行。 支持对结果集中当前位置的行进行数据修改 为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。 提供脚本、存储过程和触发器中使用的访问结果集中的数据的 Transact-SQL 语句。 游标优点 游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作 它还提供对基于游标位置而对表中数据进行删除或更新的能力 游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来使两个数据处理方式能够进行沟通 定义游标 快速只进游标:Forward_Only 只支持游标从头到尾顺序提取,不能向后滚动 读到所有提交的数据更新 在行提取后对行所做的更改对游标是不可见的 对基表直接进行操作 静态游标: static 静态游标的完整结果集在游标打开时建立在 tempdb 中 总是按照游标打开时的原样显示结果集,支持所有滚动方法 不是 ‘动态的’,不反映在数据库中所做的任何影响结果集成员的更改,也不反映会使组成结果集的行的列值发生变化的更改 键集驱动游标 : keyset 键集驱动游标由一套被称为键集的唯一标识符(键)控制。 当游标打开时,键集在游标打开时建立在 tempdb 中 支持所有滚动方法 要求每个被查询的表中有唯一索引 从数据页面中获得记录信息 游标内可看到更新的数据。在用户滚动游标中对数据值所做的更改(由游标所有者更改或其它用户提交)是可见的 但是游标外部操作的数据是不可见的 动态游标: Dynamic 动态游标与静态游标相对。 当滚动游标时,动态游标反映结果集中所做的所有更改。结果集中的行数据值、顺序和成员在每次提取时都会改变。 直接对基表操作 支持所有滚动方法 滚动时可见最新的更新 游标的提取和滚动操作 提取:从游标中检索一行或多行的操作称为提取 滚动:执行一系列的提取操作以向前或向后检索行的操作称为滚动 在T_SQL使用游标—步骤1 声明T-SQL变量包含游标返回的数据。为每一结果集列声明一个变量。声明足够大的变量以保存由列返回的值,并声明可从列数据类型以隐性方式转换得到的数据类型。 使用Declare Cursor语句把T-SQL游标与一个Select语句相关联。Declare Cursor语句同时定义游标的特征。比如游标名称以及游标是否为只读或只进游标 使用Open语句执行Select语句并生成游标 在T_SQL使用游标—步骤2 4、使用Fetch Into语句提取单个行,并将每列中的数据转移到指定的变量中。然后,其它T-SQL语句可以引用这些变量来访问已提取的数据值。T-SQL不支持提取行块 5、结束游标时,使用Close语句。关闭游标可以放弃某些资源。比如游标结果集和对当前行的锁定。但是如果重新发出一个OPEN语句,则该游标结构仍可以用于处理。由于游标仍然存在,此时还不能重新使用游标的名称。Deallocate语句则完全放弃分配给游标的资源,包括游标名称。 在T_SQL中创建游标 Fetch 获得游标中的值: 在T_SQL提取和滚动游标 FETCH FIRST:提取游标的第一行。 FETCH NEXT:提取上次提取的行的下一行。 FETCH PRIOR:提取上次提取的行的前一行。 FETCH LAST:提取游标中的最后一行。 FETCH ABSOLUTE n: 如果n 为正整数,则提取 游标中的第n行 如果n为负整数,则提取游标最后一行之前的第n行 如果n 为0,则不提取任何行 在T_SQL提取和滚动游标 FETCH RELATIVE n : 如果n为正,则提取上次提取的行之后的第n行。 如果n为负,则提取上次提取的行之前的第n行。 如果n为0,则再次提取同一行。 FETCH 语句全局变量 @@FETCH _STATUS:为执行的上一个游标 FETCH 语句返回一个整数值。 0 FETCH 语句成功。 -1 FETCH 语句失败或此行不在结果集中。 -2 被提取的行不存在。 演示创建游标 CURSOR 语句全局变量 @@CURSOR_ROWS:返回当前打开的游标中符合条件的行的数目。返回结果如下: -1: 不能确定地说所有符合
您可能关注的文档
最近下载
- 基坑支护内支撑梁拆除施工方案.docx VIP
- 最新人教版一年级上册《数学游戏》课件(整套)教学PPT(2024年秋-新教材).pptx VIP
- 最新人教版一年级数学上册《数学游戏》教学课件(整套)PPT(2024秋-新教材).pptx VIP
- GBT6058-2005 纤维缠绕压力容器制备和内压试验方法.pdf
- GB╱T 23711.1-2009 氟塑料衬里压力容器电火花试验方法.pdf
- 7m焦炉推焦车的结构特征.pdf
- 研发领料单模板.docx VIP
- 辽宁省技工学校审批表.doc VIP
- GB 26501--2011 氟塑料衬里压力容器 通用技术条件.pdf
- 施工放样报验单.doc VIP
文档评论(0)