4.5 游标的定义与使用 游标 游标是数据库管理系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果 每个游标区都有一个名字 用户可以用SQL语句逐一从游标中获取记录,并进一步处理 4.5 游标的定义与使用 4.5.1声明游标 DECLARE cursor_name [ SCROLL ] CURSOR FOR select_statement [ FOR { READ ONLY | UPDATE [ OF column_name [ , …n ] ] } ] 说明: cursor_name 是所定义的Transact-SQL服务器游标名称。 SCROLL指定该游标为滚动结果集,可以使用向前、向后、定位方式提取记录。 select_statement是定义游标结果集的标准SELECT 语句。在游标声明的select_statement 内不允许使用关键字COMPUTE、COMPUTE BY、FOR BROWSE和INTO子句。 READ ONLY 该游标只能读,不能修改。即在UPDATE或DELETE语句的WHERECURRENT OF子句中不能引用游标。该选项替代要更新的游标的默认功能。 UPDATE [OF column_name [, …n]] 定义游标内可更新的列。如果指定OFcolumn_name [,…n]参数,则只允许修改所列出的列。如果在UPDATE中未指定列的列表,则可以更新所有列。 是一条说明性语句,这时DBMS并不执行SELECT指定的查询操作。 4.5.1声明游标 【例 4.29】 定义标准游标 USE XSGL GO DECLARE cursor1 CURSOR FOR SELECT * FROM student 【例 4.30】定义只读游标 USE XSGL GO DECLARE cursor2 CURSOR FOR SELECT * FROM student FOR READ ONLY 4.5.2打开游标 使用OPEN语句 语句格式 OPEN 游标名; 功能 打开游标实际上是执行相应的SELECT语句,把所有满足查询条件的记录从指定表取到缓冲区中 这时游标处于活动状态,指针指向查询结果集中第一条记录的前面 打开游标后,可以使用全局变量@@ERROR判断该游标是否打开成功。@@ERROR为0则打开成功,否则打开失败。 4.5.3检索游标 命令格式: FETCH [ [ NEXT | PRIOR | FIRST | LAST | ABSOLUTE { n | @nvar } | RELATIVE { n | @nvar } ] FROM ] { { [ GLOBAL ] cursor_name } | @cursor_variable_name } [ INTO @variable_name [ , …n ] ] 4.5.3检索游标 功能 按指定方向推动游标指针,然后将缓冲区中的当前记录取出来送至主变量供主语言进一步处理 NEXT|PRIOR|FIRST|LAST:指定推动游标指针的方式 NEXT:向前推进一条记录 PRIOR:向回退一条记录 FIRST:推向第一条记录 LAST:推向最后一条记录 缺省值为NEXT 4.5.3检索游标 例如: DECLARE CUR CURSOR SCROLL FOR SELECT * FROM STUDENT OPEN CUR FETCH NEXT FROM CUR --下一行 FETCH ABSOLUTE 3 FROM CUR --第三行 FETCH RELATIVE -2 FROM CUR --当前行的前二行 FETCH PRIOR FROM CUR --上一行 FETCH LAST FROM CUR --最后一行 4.5.4关闭游标 使用CLOSE语句 语句格式 CLOSE 游标名; 功能 关闭游标,释放结果集占用的缓冲区及其他资源 说明 游标被关闭后,就不再和原来的查询结果集相联系 被关闭的游标可以再次被打开,与新的查询结果相联系 4.5.5释放游标 当释放最后的游标引用时,组成该游标的数据结构由 Microsoft SQL Server 释放。 命令格式: DEALLOCATE { { [ GLOBAL ] cursor_name } | @cursor_variable_name } 说明:删除指定的游标,释放该游标所占用的所有系统资源。 关闭游标并不改变其定义,可用OPEN再次打开。若想放弃游标,必须使用DEALLOCATE释放它。游标释放后,不再允许另一进程在其上执行OPEN操作。 4.5.6利用游标修改数据 利用游标修改数据时,首先在定义游标时要指明修改的字段,然后在upda
您可能关注的文档
最近下载
- 2025《“混改”后的云南白药公司治理及效果分析》6700字.doc VIP
- 2025年山东理工职业学院单招《数学》检测卷(word)附答案详解.docx VIP
- 2025年山东理工职业学院单招《数学》考前冲刺练习【实用】附答案详解.docx VIP
- 新人教版九年级数学下册导学案全册.docx VIP
- (正式版)JJF(蒙) 082-2024 《旋转蒸发仪校准规范》.pdf VIP
- 国际脓毒症和脓毒性休克管理指南解读.ppt
- 七年级下册语文单元测试卷及解析.docx VIP
- 人工智能安全与伦理挑战.pptx VIP
- 2023年执业药师继续教育咽喉反流性疾病的诊治参考答案.docx VIP
- 2025年山东理工职业学院单招英语模拟试题(附答案解析) 完整版2025.pdf VIP
原创力文档

文档评论(0)