SQLserver 使用游标双重循环生成新的数据表内容

begin
    declare @a int,@error int    
    declare @temp varchar(50), @temp2 varchar(50)
    set @a=1
    set @error=0
    
    --创建临时表
    Create Table Rpt_customerMoney (customerId int, customer varchar(30), supplierId int, supplier varchar(30), receiveSum float) ;
    
    --申明游标为Uid
    declare order_cursor cursor 
            for (select [id] from customer)
    --打开游标--
    open order_cursor
    
    --开始循环游标变量--
    fetch next from order_cursor into @temp
    while @@FETCH_STATUS = 0    --返回被 FETCH语句执行的最后游标的状态--
        begin            
        
            print @temp;
        
            --申明游标为Uid
            declare order_cursor2 cursor 
                    for (select [id] from supplier where ifOurCompany=1)
            --打开游标2--
            open order_cursor2

            fetch next from order_cursor2 into @temp2
            while @@FETCH_STATUS = 0    --返回被 FETCH语句执行的最后游标的状态--
                begin
                    insert into Rpt_customerMoney (customerId, supplierId) values (@temp, @temp2);
                    print @temp + ' '+ @temp2
            
                    fetch next from order_cursor2 into @temp2   --转到下一个游标,没有会死循环
                            
                end  
                close order_cursor2            --关闭游标
                deallocate order_cursor2    --释放游标

          
            fetch next from order_cursor into @temp   --转到下一个游标,没有会死循环
        end
        
    close order_cursor  --关闭游标
    deallocate order_cursor   --释放游标
   
end
go

小飞鱼通达二开 CSDN认证博客专家 软件开发平台 通达OA二次开发 工作流系统集成
知识范围主要涉及SCJP 、MCP、CCNA、通达OA二次开发、OA系统及微信系统的系统集成与整合。对通达OA二次开发进行深入研究与探索,主要研究信息化软件系统的整合与开发工作。
©️2020 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值