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