zoukankan      html  css  js  c++  java
  • SQL Cursor(游标)

    1.游标在数据表没有id(identity(1,1))时好用,但是游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量

    2.如果能不用游标,尽量不要使用游标,用完用完之后一定要关闭和释放, 尽量不要在大量数据上定义游标,尽量不要使用游标上更新数据

    Cursor:Global for--全局游标

    Cursor:Local for--局部游标

    LOCAL意味着游标的生存周期只在批处理或函数或存储过程中可见

    GLOBAL意味着游标对于特定连接作为上下文,全局内有效

    --第一步:声明游标
    declare test_Cursor Cursor scroll for
    select name  from dbo.aa
    open test_Cursor--打开游标
    --第二遍执行
    declare @name nvarchar(1000)
    fetch next from test_Cursor into @name--下一行
    select @name
    --第三遍关闭清空游标
    CLOSE test_Cursor--关闭
    DEALLOCATE test_Cursor--清空
    /*只有支持6种移动选项,分别为到第一行(FIRST),
      最后一行(LAST),下一行(NEXT),上一行(PRIOR),
      直接跳到某行(ABSOLUTE(n)),
      相对于目前跳几行(RELATIVE(3))*/
    

    通过游标循环数据

    declare test_Cursor Cursor scroll for
    select id,materialName from dbo.table_1
    
    open test_Cursor
    declare @c nvarchar(10)
    declare @name nvarchar(1000)
    
    while @@FETCH_STATUS=0
    begin
    fetch next from test_Cursor into @c,@name
    select @c,@name
    end
    --最后执行
    CLOSE test_Cursor
    DEALLOCATE test_Cursor
    

      

  • 相关阅读:
    redis之Scan
    redis之GeoHash
    redis之漏斗限流
    redis之布隆过滤器
    redis之HyperLogLog
    redis位图
    redis延迟队列
    redis分布式锁
    如何安装redis
    社区首款 OAM 可视化平台发布!关注点分离、用户友好、上手难度低
  • 原文地址:https://www.cnblogs.com/Evan-Pei/p/4648969.html
Copyright © 2011-2022 走看看