zoukankan      html  css  js  c++  java
  • 游标的使用

    一.游标概述

    明确:执行select语句可进行查询并返回满足条件的所有记录,这一完整的记录称为结果集

    游标:能将结果集作为一个单元来有效地处理,对结果集中的部分记录进行处理,不但允许定位在结果集的特定记录上,还可以从结果集的当前位置检索若干条记录,并支持对结果集中当前记录进行数据修改;可视作一种指针,用于指向处理结果集中任意位置的数据

    操作表单:

    执行SQL语句:

     1 --游标的使用
     2 --声明游标
     3 declare 客户_cursor cursor for
     4 select 姓名,年龄 --游标定位的结果集
     5 from  客户信息表
     6 --打开游标
     7 open 客户_cursor
     8 --提取数据
     9 fetch next from 客户_cursor
    10 --判断fetch是否成功
    11 while @@FETCH_STATUS=0 --提取状态
    12 begin
    13      --提取下一行
    14      fetch next from 客户_cursor
    15 end
    16 --关闭游标
    17 close 客户_cursor
    18 --释放游标
    19 deallocate 客户_cursor

     温馨小提示:依照上面  声明游标(定位查询结果集)-->打开游标(open会创建临时表存放索引键集,临时表存放在Tempdb数据库中)-->提取数据(成功打开游标后就可以使用fetch语句从该游标中提取特定的记录)-->关闭游标(close关闭该游标,释放当前的结果集并解除定位于该游标的记录行上的游标锁定,但关闭后,游标的数据结构仍然存储在系统中)-->释放游标(so,为了将游标占用的资源全部归还给系统,使用deallocate删除游标引用,释放数据结构)


    二.游标应用

    操作表单:

    SQL语句操作:

     1 declare @kh varchar(20),@consume money
     2 --游标定位
     3 declare 修改金额_cursor cursor for
     4 select 客户编号,消费总金额 from 总消费表 where 客户编号='01'
     5 --打开游标
     6 open 修改金额_cursor
     7 --提取结果集
     8 fetch next from 修改金额_cursor into @kh,@consume
     9 --打印修改前
    10 print '修改前: '+@kh+'客户消费金额为: '+convert(varchar,@consume);
    11 --修改
    12 update 总消费表 set 消费总金额=消费总金额+100
    13 where current of 修改金额_cursor
    14 --关闭游标
    15 close 修改金额_cursor
    16 --重新打开游标
    17 open 修改金额_cursor
    18 --提取结果
    19 fetch next from 修改金额_cursor into @kh,@consume
    20 print '修改后: '+@kh+'客户消费金额为: '+convert(varchar,@consume);
    21 --关闭游标
    22 close 修改金额_cursor
    23 --释放游标
    24 deallocate 修改金额_cursor

    温馨小提示:多练习,小哥哥已经不行了,回去再战嘤glish,冲鸭!

  • 相关阅读:
    500. 键盘行
    657. 判断路线成圈
    771. 宝石与石头
    461. 汉明距离
    Java 基本数据类型
    Windows下的DOM操作
    jQuery学习笔记
    Java(16-19)
    Java(1-15)
    总结
  • 原文地址:https://www.cnblogs.com/zjm1999/p/10171271.html
Copyright © 2011-2022 走看看