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

  • 相关阅读:
    18 | 案例篇:内存泄漏了,我该如何定位和处理?
    17 | 案例篇:如何利用系统缓存优化程序的运行效率?
    16 | 基础篇:怎么理解内存中的Buffer和Cache?
    Scrapyd 改进第一步: Web Interface 添加 charset=UTF-8, 避免查看 log 出现中文乱码
    scrapy_redis 相关: 将 jobdir 保存的爬虫进度转移到 Redis
    lxml.etree.HTML(text) 解析HTML文档
    CSS/Xpath 选择器 第几个子节点/父节点/兄弟节点
    scrapy_redis 相关: 查看保存的数据
    scrapy 通过FormRequest模拟登录再继续
    python2 python3 转换,兼容
  • 原文地址:https://www.cnblogs.com/zjm1999/p/10171271.html
Copyright © 2011-2022 走看看