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,冲鸭!

  • 相关阅读:
    实验十四
    2
    解一元二次方程
    第一题
    输入四个人的年龄和姓名,排序后,按年龄,从小到大输出人员年龄及其姓名
    实验九
    实验8数组2 1.程序调试
    实验七4编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。
    实验10 指针2
    作业4
  • 原文地址:https://www.cnblogs.com/zjm1999/p/10171271.html
Copyright © 2011-2022 走看看