【数据库】游标

举报
Laura_张 发表于 2022/09/01 01:02:06 2022/09/01
【摘要】 目录 概述 构成 特点 游标的声明 操作游标 判断游标的提取状态 概述 游标是一种访问机制,允许用户访问单独的数据行,而不是对整个行集进行操作。 构成 游标结果集:由定义游标的select语句返回的行的集合。 游标位置:指向这个结果集中的某一行的指针。 特点 游标返回一个完整的结果集,但语序程序设计语言只调用...

目录

概述

构成

特点

游标的声明

操作游标

判断游标的提取状态


概述

游标是一种访问机制,允许用户访问单独的数据行,而不是对整个行集进行操作。

构成

游标结果集:由定义游标的select语句返回的行的集合

游标位置:指向这个结果集中的某一行的指针。

特点

游标返回一个完整的结果集,但语序程序设计语言只调用集合中的一行。

允许定位在结果集的特定行。

从结果集的当前位置检索一行或多行。

支持对结果集中当前位置的行进行数据修改。

课为其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。

提供脚本、存储过程和触发器中使用的访问结果集中数据的T-sql语句。

游标的声明

语法格式:

实例:


  
  1. --声明一个只读游标
  2. declare student_cursor scroll cursor
  3. for
  4. select * from student_Info
  5. for read only
  6. --对游标进行释放:
  7. deallocate student_cursor
  8. --更新游标:
  9. declare student_cursor scroll cursor
  10. for
  11. select * from student_Info
  12. for update

注意:游标需要释放之后才可以进行下一步的操作。

操作游标

语法格式:打开、检索、关闭、释放 

实例:


  
  1. declare stu_cursor scroll cursor for --声明游标
  2. select student_Name from student_Info --在学生表中查询学生姓名
  3. open stu_cursor --打开游标
  4. declare @name varchar(20) --定义变量
  5. fetch first from stu_cursor --游标的操作,查找第一条记录
  6. --fetch next from stu_cursor -- 游标操作,查找下一条记录
  7. into @name --查找记录显示在定义中
  8. print @name --打印查找记录
  9. close stu_cursor --关闭游标
  10. deallocate stu_cursor --释放游标

判断游标的提取状态

全局变量@@FETCH_STATUS

通过返回值可以判断是否获取到数据:

0     fetch语句成功

-1   fetch语句失败或行不在结果集中

-2    提取的行不存在

实例:当出现游标提取数据行的位置出现错误的时候,加入一个判断,可以显示结果。


  
  1. declare @name varchar(20) --定义变量
  2. fetch next from stu_cursor --游标的操作,查找第一条记录
  3. --fetch next from stu_cursor -- 游标操作,依次查找下一条记录
  4. into @name --查找记录显示在定义中
  5. if @@fetch_status=0
  6. print @name --打印查找记录
  7. else
  8. print'提取数据错误' --显示提取数据错误

感谢您的阅读,欢迎斧正~

文章来源: blog.csdn.net,作者:张艳伟_Laura,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Laura__zhang/article/details/103333673

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。