sqlserver2000-2005游标的使用操作.docxVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sqlserver2000-2005游标的使用操作

1. 定义游标定义 游标语句的核心是定义了一个游标标识名,并把游标标识名和一个查询语句关联起来。DECLARE语句用于声明游标,它通过SELECT查询定义游标存储的数据集合。语句格式为: DECLARE 游标名称 [INSENSITIVE] [SCROLL] CURSOR FOR select语句 [FOR{READ ONLY|UPDATE[OF 列名字表]}] 参数说明: INSENSITIVE选项:说明所定义的游标使用SELECT语句查询结果的拷贝,对游标的操作都基于该拷贝进行。因此,这期间对游标基本表的数据修改不能反映到游标中。这种游标也不允许通过它修改基本表的数据。 SCROLL选项:指定该游标可用所有的游标数据定位方法提取数据,游标定位方法包括PRIOR、FIRST、LAST、ABSOLUTE n 和RELATIVE n 选项。 Select语句:为标准的SELECT查询语句,其查询结果为游标的数据集合,构成游标数据集合的一个或多个表称作游标的基表。 在游标声明语句中,有下列条件之一时,系统自动把游标定义为INSENSITIVE游标: SELECT语句中使用了DISTINCT、UNION、 GROUP BY或HAVING等关键字; 任一个游标基表中不存在唯一索引。 其他 READ ONLY选项:说明定义只读游标。 UPDATE [OF 列名字表]选项:定义游标可修改的列。如果使用OF 列名字表选项,说明只允许修改所指定的列,否则,所有列均可修改。 例如,查询教师名字和所教的课程名,定义游标TCURSOR的语句如下 : DECLARE TCURSOR CURSOR FOR SELECT tname, cname FROM teacher ,couse WHERE teacher.tno = couse.tno 2. 打开游标 打开游标语句执行游标定义中的查询语句,查询结果存放在游标缓冲区中。并使游标指针指向游标区中的第一个元组,作为游标的缺省访问位置。查询结果的内容取决与查询语句的设置和查询条件。 打开游标的语句格式: EXEC SQL OPEN 〈游标名〉 如果打开的游标为INSENSITIVE游标,在打开时将产生一个临时表,将定义的游标数据集合从其基表中拷贝过来。 SQL Server中,游标打开后,可以从全局变量@@CURSOR_ROWS中读取游标结果集合中的行数。 例1:打开前面所创建的查询教师姓名和所教课名称的游标。 OPEN tcursor 例2:显示游标结果集合中数据行数 SELECT 数据行数 = @@CURSOR_ROWS 3. 读游标区中的当前元组 读游标区数据语句是读取游标区中当前元组的值,并将各分量依次赋给指定的共享主变量。FETCH语句用于读取游标中的数据,语句格式为: FETCH [[NEXT|PRIOR|FIRST|LAST| ABSOLUTE n| RELATIVE n] FROM ] 游标名 [INTO @变量1, @变量2, ….] 其中: NEXT:说明读取游标中的下一行,第一次对游标实行读取操作时,NEXT返回结果集合中的第一行。 PRIOR、FIRST、LAST、ABSOLUTE n 和RELATIVE n 选项只适用于SCROLL游标。它们分别说明读取游标中的上一行、第一行、最后一行、第n 行和相对于当前位置的第n 行。n 为负值时,ABSOLUTE n 和RELATIVE n 说明读取从游标结果集合中的最后一行或当前行倒数n行的数据。 INTO子句 说明将读取的数据存放到指定的局部变量中,每一个变量的数据类型应与游标所返回的数据类型严格匹配,否则将产生错误。 如果游标区的元组已经读完,那么系统状态变量SQLSTATE的值被设为02000,意为no tuple found。 例如,读取tcursor中当前位置后的第二行数据 FETCH RELATIVE 2 FROM tcursor 4. 利用游标修改数据 SQL Server中的 UPDATE语句 和 DELETE语句也支持游标操作,它们可以通过游标修改或删除游标基表中的当前数据行。 UPDATE语句的格式为: UPDATE table_name SET 列名=表达式}[,…n] WHERE CURRENT OF cursor_name DELETE语句的格式为: DELETE FROM table_name WHERE CURRENT OF cursor_name 说明: CURRENT OF cursor_name: 表示当前游标指针所指的当前行数据。CURRENT OF 只能在UPDATE和DELETE语句中使用。 注意: o使用游标修改基表数据的前提是声明的游标是可更新的。 o 对相应的数据库对象

您可能关注的文档

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档