数据库基础--游标

来源:互联网 发布:鲁大师 硬件体检 优化 编辑:程序博客网 时间:2024/04/30 12:37
使用游标1.声明游标2.打开游标3.读取游标数据4.通过游标更新/删除数据5.游标函数6.关闭游标7.删除游标为什么使用游标在开发数据库应用程序时,经常需要使用 SELECT 语句查询数据库,查询返回的数据存放在结果集中。用户在得到结果集后,需要逐行逐列的获取其中存储的数据,从而在应用程序中使用这些值。本讲所要介绍的游标,就是一种定位并控制结果集的机制。游标是映射结果集并在结果集内的单个行上建立一个位置的实体(类似于“指针”的概念)。游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标提供了一种对从表中检索出的数据进行操作的灵活手段。游标的主要功能1.允许定位结果集的特定行。2.从结果集的当前位置检索一行或多行。3.支持对结果集中当前位置的行进行数据修改(删除或更新)。4.如果其他用户需要对显示在结果集中的数据库数据进行修改,游标可以提供不同级别的可见性支持。5.提供脚本、存储过程和触发器中使用的访问结果集中数据的 Transact-SQL 语句。--声明一个标准游标,结果集为“学生”表中所有的男同学USE 学生管理DECLARE 男同学CURSOR  FOR SELECT * FROM 学生WHERE 性别=1GO--声明一个只读游标,结果集为“学生”表中所有的男同学USE 学生管理DECLARE 男同学CURSOR  FOR SELECT * FROM 学生WHERE 性别=1  FOR READ ONLYGO--声明一个游标,结果集为“学生”表中所有的男同学,然后打开此游标。USE 学生管理DECLARE 男同学CURSOR  FOR SELECT * FROM 学生WHERE 性别=1OPEN 男同学GO--打开一个不存在的游标USE 学生管理OPEN tmp_curGO--打开一个已经打开的游标USE 学生管理DECLARE 男同学CURSOR  FOR SELECT * FROM 学生WHERE 性别=1OPEN 男同学OPEN 男同学GO--声明一个游标,结果集为“学生”表中所有的男同学,--然后打开此游标,并读取第一行数据。USE 学生管理DECLARE 男同学CURSOR  FOR SELECT * FROM 学生WHERE 性别=1OPEN 男同学FETCH NEXT FROM 男同学GO--声明一个游标,结果集为“学生”表中所有的男同学,--然后打开此游标,并读取最后一行数据。USE 学生管理DECLARE 男同学SCROLL CURSOR  FOR SELECT * FROM 学生WHERE 性别=1OPEN 男同学FETCH LAST FROM 男同学GO--通过使用@@FETCH_STATUS函数输出游标中的所有记录。USE 学生管理DECLARE 男同学SCROLL CURSOR  FOR SELECT * FROM 学生WHERE 性别=1OPEN 男同学FETCH NEXT FROM 男同学WHILE (@@FETCH_STATUS = 0)  FETCH NEXT FROM 男同学GO--关闭一个已经打开的游标,然后声明一个同名游标USE 学生管理DECLARE 男同学SCROLL CURSOR  FOR SELECT * FROM 学生WHERE 性别=1OPEN 男同学CLOSE 男同学DECLARE 男同学SCROLL CURSOR  FOR SELECT * FROM 学生WHERE 性别=1GO--删除游标USE 学生管理DECLARE 男同学SCROLL CURSOR  FOR SELECT * FROM 学生WHERE 性别=1OPEN 男同学  FETCH FIRST FROM 男同学CLOSE 男同学DEALLOCATE 男同学DECLARE 男同学SCROLL CURSOR  FOR SELECT * FROM 学生WHERE 性别=1OPEN 男同学FETCH LAST FROM 男同学GO返回指定游标的状态。返回值如下:1:游标的结果集中至少有一行0:游标的结果集为空−1:游标被关闭−2:游标不可用−3:游标名称不存在