zoukankan      html  css  js  c++  java
  • sql 几种循环方式

    1:游标方式

    复制代码
    ALTER PROCEDURE [dbo].[testpro]  
    as
    
    declare @yeardatestr varchar(20) --日期拼接
    declare @meterno varchar(20) --仪表编号
    declare @collectindataname varchar(30) --数据采集表
    declare @collectindataname_back varchar(30) --数据采集备份表
    
    
    declare @monsdt varchar(20)
    declare @monedt varchar(20)
    
    begin
    
    
        set @yeardatestr = datename(YY,getdate()) + datename(MM,getdate()) 
    
        
        set @monsdt=Convert(VarChar(4),DatePart(year,GETDATE()))+'-'+Convert(VarChar(2),DatePart(MONTH,DateAdd(MONTH,-2,GETDATE())))+'-01'
        set @monedt=CONVERT(VARCHAR(10),DateAdd(DAY,-1,DateAdd(MONTH,2,Convert(datetime,@monsdt,121))),20)
        
        declare meters_cur cursor local  fast_forward --定义游标
        for 
        select distinct MeterNo from MeterInfo
        open meters_cur --打开游标
        fetch next from meters_cur into @meterno--从游标中取出数据
        while @@fetch_status =0 --取出数据成功
        begin
        
            dbcc SHRINKFILE(testdb_log,0) --收缩日志 
            fetch next from meters_cur into @meterno--下一条
        end
        close meters_cur--关闭游标
        deallocate meters_cur--释放游标
    
    end
    复制代码

    2:goto方式

    复制代码
        nextValue:--循环起点关键字
        select @num=ynum from pp_yunnum where prjsht=@prjsht
    
        IF(@flg=1)
            set @yunsht='K' + @prjsht + '-' + Convert(varchar(10),@num+1)
        ELSE
            set @yunsht=REPLACE(@prjsht,'_','') + '-' + dbo.Lpad(@num+1,2,'0')
    
        if exists (select 1 from pp_yun where pp_yun.sht=@yunsht)
        begin
            update pp_yunnum set ynum=ynum+1 where prjsht=@prjsht
            
            goto nextValue;--重新从nextValue出执行
        end
    复制代码
     
     
     
     
     
     
     
  • 相关阅读:
    头像切换封装
    JSON数据的序列化方法
    HTML5 LocalStorage 本地存储
    onhashchange实现下一页与上一页功能,并且实现当前页面刷新时停留在当前页面
    提交页面可输入的数据-----XSS漏洞
    js冒泡排序
    html实现将网页页面分享到微信朋友圈添加缩略图图片的方法
    js常用正则表达式
    C 传递指针给函数
    C 指向指针的指针
  • 原文地址:https://www.cnblogs.com/ljs-13/p/12889135.html
Copyright © 2011-2022 走看看