游标的作用

简介:
< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

   
      关系数据库中的操作会对整个行集产生影响。由       SELECT       语句返回的行集包括所有满足该语句       WHERE       子句中条件的行。由语句所返回的这一完整的行集被称为结果集。应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。这些应用程序需要一种机制以便每次处理一行或一部分行。游标就是提供这种机制的结果集扩展。   
    
      游标通过以下方式扩展结果处理:     
    
      允许定位在结果集的特定行。   
    
    
      从结果集的当前位置检索一行或多行。   
    
    
      支持对结果集中当前位置的行进行数据修改。   
    
    
      为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。   
    
    
      提供脚本、存储过程和触发器中使用的访问结果集中的数据的       Transact-SQL       语句。     
      请求游标   
      Microsoft&reg;       SQL       Server&#8482;       2000       支持两种请求游标的方法:     
    
      Transact-SQL     
      对根据       SQL-92       游标语法制定的游标,Transact-SQL       语言支持使用它们的语法。   
    
      数据库应用程序编程接口(API)游标函数     
      SQL       Server       支持这些数据库       API       的游标功能:   
    
      ADO(Microsoft       ActiveX&reg;       数据对象)   
    
    
      OLE       DB   
    
    
      ODBC(开放式数据库连接)   
    
    
      DB-Library     
      应用程序不能混合使用这两种请求游标的方法。已经使用       API       指定游标行为的应用程序不能再执行       Transact-SQL       DECLARE       CURSOR       语句请求一个       Transact-SQL       游标。只有在将所有       API       游标特性均设回默认值后,应用程序才可以执行       DECLARE       CURSOR。   
    
      如果       Transact-SQL       和       API       游标均未被请求,则默认情况下       SQL       Server       将一个完整的结果集返回给应用程序,这个结果集称为默认结果集。   
    
      游标进程   
      Transact-SQL       游标和       API       游标有不同的语法,但下列一般进程可用于所有       SQL       Server       游标:     
    
      把游标与       Transact-SQL       语句的结果集相关联,并且定义游标的特征,如是否能够更新游标中的行。   
    
    
      执行       Transact-SQL       语句以填充游标。   
    
    
      检索想要查看的游标中的行。从游标中检索一行或多行的操作称为提取。执行一系列的提取操作以向前或向后检索行的操作称为滚动。   
    
    
      根据需要,对游标中当前位置的行执行修改操作(更新或删除)。   
    
    
      关闭游标。     

简单的说,跟C语言里的指针相识   
      可以随意移动到需要的行

例:
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 ] ] ]

打开该游标时所生成的结果集包括 pubs 数据库的 authors 表中的所有行和列。可以更新该游标,对该游标所做的所有更新和删除均在提取中表现出来。因为没指定 SCROLL 选项,FETCH NEXT 是唯一可用的提取选项。
DECLARE authors_cursor CURSOR
     FOR SELECT * FROM authors
OPEN authors_cursor
FETCH NEXT FROM authors_cursor

牵套游标
declare      cursor      Cursor_Name      for     
     Select      *      from      table_Name      (for      read      only)   
     fetch      cursor_Name      to      variable_Name     
     ;   
     ;   
     ;    
注:fetch      从 Transact-SQL 服务器游标中检索特定的一行。

本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2007/06/12/2912366.html  ,如需转载请自行联系原作者

相关文章
|
2月前
|
数据库
解释一下游标和会话对象的具体含义。
【2月更文挑战第12天】【2月更文挑战第34篇】解释一下游标和会话对象的具体含义。
|
4月前
|
存储 SQL 关系型数据库
触发器和游标区别
触发器(Trigger)和游标(Cursor)是关系型数据库中常见的两个概念,它们在功能和使用上有一些区别。下面是触发器和游标的主要区别:
189 1
|
5月前
|
存储 SQL 关系型数据库
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
47 0
|
11月前
|
存储 Oracle 关系型数据库
MySql存储过程游标循环问题解决过程
MySql存储过程游标循环问题解决过程
144 0
|
11月前
|
存储 SQL 关系型数据库
16_变量、流程控制与游标(一)
16_变量、流程控制与游标(一)
70 0
|
11月前
|
存储 SQL 关系型数据库
16_变量、流程控制与游标(二)
16_变量、流程控制与游标(二)
89 0
|
存储
变量的使用、游标的使用、流程控制的使用
变量的使用、游标的使用、流程控制的使用
129 0
游标的简单例子
游标 不单独存在 是看不到的 declare mycursor 声明游标 cursor for select UserName,Gender fro...
1096 0
|
SQL 存储 数据库
游标概念和作用(转载)
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标充当指针的作用。
1119 0