17xie > SQL Server 2005高级程序设计 > 4.4 在游标中导航:FETCH语句
背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-105523.html    注册17xie 一起来写书 实现您的出书梦想!

4.4  在游标中导航:FETCH语句

我猜第一个创建SQL游标语法的人肯定非常喜欢狗。他们大概决定要把寻找的数据想成是骨头,而SQL Server是忠实的猎犬。我猜,从这里开始,就有了FETCH关键字。

思考一下就会觉得,这是很贴切的术语。简单地说,它告诉SQL Server“去取过来!”收到这一指令后,忠实的狗(以SQL Server的形式)就会去找到我们要取得的特定的骨头(行)。在本章前面的一些游标中,已经对FETCH语句有了一点接触,不过,现在要更深入地探究这一非常重要的语句。

实际上,比起我们已经看过的来说,FETCH具有更多的选项。迄今为止,见过三种不同的FETCH选项(NEXT、PRIOR和FIRST)。这真算是一个不错的开始。的确,对于最基本的游标导航命令组来说,其实只需再加入一个命令即可,并且,在那之后,再加入几个命令就拥有了完整的命令集。

接下来,看一下每一个游标导航命令,并看看它们能为我们做什么:

FETCH选项

描    述

NEXT

在结果集中恰好向前移动一行,该选项是主要的游标选项。百分之九十或者更多的游标不再需要比该选项更多的东西。在决定是否声明为FORWARD_ONLY时请记住这些。当试图进行FETCH NEXT,并且这导致超出了最后一条记录时,@@FETCH_STATUS将会为-1

PRIOR

正如你可能已经猜到的,该选项的功能与NEXT相反。该选项紧邻当前行向前移动一行。当位于结果集中的第一行时,执行FETCH PRIOR将得到为-1的@@FETCH_STATUS,就好像在FETCH NEXT时移动到了文件末尾之外一样

FIRST

与大多数游标选项一样,该选项很清楚地表明了它的作用。如果执行FETCH FIRST,则将处于记录集中的第一行。该选项唯一使@@FETCH_STATUS为-1的时候是,在结果集为空的时候

(续)

FETCH选项

描    述

LAST

该选项与FIRST的功能相反,FETCH LAST将使你移动到结果集中的最后一行。同样,唯一使@@ FETCH_STATUS为-1的时候是,当结果集为空的时候

ABSOLUTE

使用该选项时,你要提供一个整数值,该值表明想要返回从游标头开始的第多少行。如果提供的值为负,则表明想要返回从游标末尾开始的第多少行。注意,动态游标不支持该选项(由于动态游标中的成员在每次提取时重新生成,你能够“真正知道你在哪里”)。在一些客户访问对象模型中,这大致等同于导航到某个特定的“绝对位置”

RELATIVE

不,这可不是岳母亲戚关系这样的事情。这是关于从当前行开始向前或向后移动指定数目的行的导航问题

在前面的游标中,我们已经对这些选项进行了相当多的讨论。其他的导航选择的工作起来几乎一样。


字数:1271    最后更新:7个月以前 [04-23 15:59]happyskynet 修改
本页编辑者:happyskynet  
[前一页]:4.3 游标的类型和扩展…  [后一页]:4.5 在游标中修改数据
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号