zoukankan      html  css  js  c++  java
  • 遍历表,执行存储过程的方法

    1、使用“表变量 ”

        declare @Row    int,

            @Rows    int,
            @DANo    char(23),
            @DATime    datetime,
            @LogTime datetime,
            @MeterType char(4),
            @MeterNo    char(20),
            @Qty        decimal(18,6)
    declare @t table (
    Row        int identity(1,1)    not null,
    DANo    char(23)            not null,
    DATime    datetime            not null,
    LogTime    datetime            not null,
    MeterType char(4)            not null,
    MeterNo      char(20)            not null,
    Qty        decimal(18,6)        null
    )
    insert into @t
    select DANo,DATime,LogTime,MeterType,MeterNo,Qty
    set @Rows = @@ROWCOUNT
    set @Row = 1
    while (@Row <=@Rows)
    begin
        select @DANo = DANo,@DATime= DATime,@LogTime= LogTime,@MeterType = MeterType,@MeterNo = MeterNo ,@Qty = Qty
        from @T where row = @Row
        
        exec Usp_DAListForEnergyDataDetail @DANo,@DATime,@LogTime,@MeterType,@MeterNo,@Qty
        
        set @Row = @Row + 1
    end

     

    2、使用游标

    declare cursor_test cursor local forward_only static read_only
    for
        select DANo,DATime,LogTime,MeterType,MeterNo,Qty from table_name

    open cursor_test
    fetch next from cursor_test into @DANo,@DATime,@LogTime,@MeterType,@MeterNo,@Qty

    while(@@fetch_status=0)
    begin
        exec Usp_DAListForEnergyDataDetail @DANo,@DATime,@LogTime,@MeterType,@MeterNo,@Qty
        fetch next from cursor_test into @DANo,@DATime,@LogTime,@MeterType,@MeterNo,@Qty
    end

    close cursor_test

    deallocate cursor_test 

  • 相关阅读:
    Linux进程间通信分类 以及 pipe的原理实现
    单链表的快速排序
    再谈二分查找
    数据库范式
    二分查找法浅析
    C# Observer设计模式
    C# 交错数组浅析
    C语言初学 数学中带根号的复杂计算问题
    C语言初学 计算三角形面积问题
    C语言初学 简单定义圆的面积计算问题
  • 原文地址:https://www.cnblogs.com/ssol/p/2604505.html
Copyright © 2011-2022 走看看