游标和自定义函数

游标和自定义函数

ID:36899550

大小:3.57 MB

页数:43页

时间:2019-05-10

游标和自定义函数_第1页
游标和自定义函数_第2页
游标和自定义函数_第3页
游标和自定义函数_第4页
游标和自定义函数_第5页
资源描述:

《游标和自定义函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SQLServer数据库设计复习游标和自定义函数目标了解游标的概念掌握游标的使用方法游标的概念游标(Cursor)它使用户可逐行访问由SQLServer返回的结果集。使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQLserver内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。假设有如下三张表ProductsProductSortUnits

2、我想得到如下结果,该如何思考(具体代码见PPT第16页)游标的使用步骤声明游标打开游标从打开的游标中提取行关闭游标释放游标声明游标声明游标是指用DECLARE语句声明或创建一个游标。声明游标的语法如下:DECLAREcursor_name[SCROLL]CURSORFORselect_statement[FOR{READONLY

3、UPDATE[OFcolumn_name_list]}]其中:cursor_name:是游标的名字,为一个合法的SQLServer标识符,游标的名字必须遵循SQLServ

4、er命名规范。SCROLL:表示取游标时可以使用关键字NEXT、PRIOR、FIRST、LAST、ABSOLUTE、RELATIVE。每个关键字的含义将在介绍FETCH子句时讲解。select_statement:是定义游标结果集的标准SELECT语句,它可以是一个完整语法和语义的Transact-SQL的SELECT语句。但是这个SELECT语句必须有FROM子句,不允许使用关键字COMPUTE、COMPUTEBY、FORBROWSE和INTO。FORREADONLY:指出该游标结果集只能读,不

5、能修改。FORUPDATE:指出该游标结果集可以被修改。OFcolumn_name_list:列出可以被修改的列的名单。注意:游标有且只有两种方式:FORREADONLY或FORUPDATE,默认为FORUPDATE方式。当游标方式指定为FORREADONLY时,游标涉及的表不能被修改。当游标方式指定为FORUPDATE时,可以删除或更新游标涉及的表中的行。游标必须先申明再打开即声明游标的DECLARECURSOR语句必须是在该游标的任何OPEN语句之前。打开游标打开游标是指打开已被声明但尚未被打

6、开的游标,打开游标使用OPEN语句。打开游标的语法如下:OPENcursor_name其中:cursor_name是一个已声明的尚未打开的游标名。注意:当游标打开成功时,游标位置指向结果集的第一行之前。只能打开已经声明但尚未打开的游标。从打开的游标中提取行游标被打开后,游标位置位于结果集的第一行前,此时可以从结果集中提取(FETCH)行。SQLServer将沿着游标结果集一行或多行向下移动游标位置,不断提取结果集中的数据,并修改和保存游标当前的位置,直到结果集中的行全部被提取。从打开的游标中提取行

7、的语法如下:FETCH[[NEXT

8、PRIOR

9、FIRST

10、LAST

11、ABSOLUTE

12、RELATIVE]FROM]cursor_name[INTOfetch_target_list]其中:cursor_name:为一已声明并已打开的游标名字。NEXT

13、PRIOR

14、FIRST

15、LAST

16、ABSOLUTE

17、RELATIVE:游标移动方向,缺省情况下是NEXT,即向下移动。NEXT:取下一行数据。PRIOR:取前一行数据。FIRST:取第一行数据。LAST:取最后一行数据。ABSOLUTE:按绝对位置

18、取数据,从第一行开始取记录。FETCHABSOLUTEnFROMmyCursorINTO@SortID,@SorttNamen为正,则从记录集首部向下移动至第n条记录,负则从记录集底部向上移动n行。RELATIVE:按相对位置取数据。游标位置确定了结果集中哪一行可以被提取,如果游标方式为FORUPDATE的话,也就确定该位置一行数据可以被更新或删除。FETCHRELATIVEnFROMmyCursorINTO@SortID,@SorttNamen为正,则从当前指针位置向下移动至第n条记录,负则从当

19、前指针位置向上移动n行。INTOfetch_target_list:指定存放被提取的列数据的目的变量清单。这个清单中变量的个数、数据类型、顺序必须与定义该游标的select_statement的SELECT_list中列出的列清单相匹配。为了更灵活地操纵数据,可以把从已声明并已打开的游标结果集中提取的列数据,分别存放在目的变量中。有两个全局变量提供关于游标活动的信息:@@FETCH_STATUS保存着最后FETCH语句执行后的状态信息,其值和含义如下:0:表示成功完成FETCH语句

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。