网站大量收购独家精品文档,联系QQ:2885784924

光标的概念.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
光标的概念

游标的概念 游标提供了一种从表中检索数据并进行操作的灵活手段,游标主要用在服务器上,处理由客户端发送给服务器端的SQL语句,或是批处 理、存储过程、触发器中的数据处理请求。游标的优点在于它可以定位到结果集中的某一行,并可以对该行数据执行特定操作,为用户在处理数据的过程中提供了很 大方便。一个完整的游标由5部分组成,并且这5个部分应符合下面的顺序。 (1)声明游标。 (2)打开游标。 (3)从一个游标中查找信息。 (4)关闭游标。 (5)释放游标。 声明游标 首先来学习如何声明一个游标,声明游标使用DECLARE CURSOR语句。此语句有两种语法声明格式,分别为SQL 92标准格式和SQL Server扩展(扩展了声明游标的参数)格式,下面将分别介绍声明游标的两种语法格式。 1.SQL-92语法格式 语法: DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR FOR select_statement FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ] 参数说明: l??? DECLARE cursor_name:指定一个游标名称,其游标名称必须符合标识符规则。 l??? INSENSITIVE:定义一个游标,以创建将由该游标使用的数据的临时复本。对游标的所有请求都从tempdb中的临时表中得到应答;因此,在对该游 标进行提取操作时返回的数据中不反映对基表所做的修改,并且该游标不允许修改。使用SQL-92语法时,如果省略INSENSITIVE,(任何用户)对 基表提交的删除和更新都反映在后面的提取中。 l??? SCROLL:指定所有的提取选项(FIRST、LAST、PRIOR、NEXT、RELATIVE、ABSOLUTE)均可用。 ????? FIRST:取第一行数据。 ????? LAST:取最后一行数据。 ????? PRIOR:取前一行数据。 ?????? NEXT:取后一行数据。 ?????? RELATIVE:按相对位置取数据。 ?????? ABSOLUTE:按绝对位置取数据。 如果未指定SCROLL,则NEXT是惟一支持的提取选项。 l??? select_statement:定义游标结果集的标准SELECT语句。在游标声明的select_statement内不允许使用关键字COMPUTE、COMPUTE BY、FOR BROWSE和INTO。 l??? READ ONLY:表明不允许游标内的数据被更新,尽管在默认状态下游标是允许更新的。在UPDATE或DELETE语句的WHERE CURRENT OF子句中不允许引用游标。 l??? UPDATE [ OF column_name [ ,...n ] ]:定义游标内可更新的列。如果指定OF column_name [,...n]参数,则只允许修改所列出的列。如果在UPDATE中未指定列的列表,则可以更新所有列。 2.SQL Server扩展格式 语法: DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCROLL ] [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ] [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ] [ TYPE_WARNING ] FOR select_statement [ FOR UPDATE [ OF column_name [ ,...n ] ] ] 参数说明: l??? DECLARE cursor_name:指定一个游标名称,其游标名称必须符合标识符规则。 l??? LOCAL:定义游标的作用域仅限在其所在的批处理、存储过程或触发器中。当建立游标在存储过程执行结束后,游标会被自动释放。 l??? GLOBAL:指定该游标的作用域对连接是全局的。在由连接执行的任何存储过程或批处理中,都可以引用该游标名称。该游标仅在脱接时隐性释放。 l??? FORWARD_ONLY:指定游标只能从第一行滚动到最后一行。FETCH NEXT是惟一受支持的提取选项非指定STATIC、KEYSET或DYNAMIC关键字,否则默认为FORWARD_ONLY。STATIC、 KEYSET和DYNAMIC游标默认为SCROLL。与ODBC和ADO这类数据库API不同,STATIC、KEYSET和 DYNAMICTransact-SQL游标支持FORWARD_ONLY。FAST_FORWARD和FORWARD_ONLY是互斥的;如果指定一 个,则不能指定另一个。 l??? ST

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档