通过游标,将数据导入到另一个结构不同的表

create table test_log --保存转换后的ID,以备转换过程出错时,进行还原操作
(
 uid int identity,
 rec_uid varchar(12),
 tb_name varchar(100)
)*/


declare @as_unique_id  varchar(12)
declare @as_ibk_uid    varchar(12)
declare @as_so_uid    varchar(12)
declare @as_rec_crt_user varchar(20)
declare @as_rec_upd_user varchar(20)
declare @as_rec_crt_date datetime
declare @as_rec_upd_date datetime
     
declare cursor1 cursor for
 select rtrim(ltrim(unique_id)),rtrim(ltrim(so_uid)),rec_crt_user,rec_upd_user,rec_crt_date,rec_upd_date from exibk with(nolock) where voided > 0 and so_uid in('0Y807000006','0C803000008')
open cursor1 
fetch next from cursor1 into @as_ibk_uid,@as_so_uid,@as_rec_crt_user,@as_rec_upd_user,@as_rec_crt_date,@as_rec_upd_date 
while @@fetch_status=0   
begin

    if @as_so_uid !=''
    begin
       declare @exibkpodtl_unique_id varchar(12)
       declare cursor2 cursor for
 
       select rtrim(ltrim(unique_id)) from expodtl with(nolock) where so_uid=@as_so_uid
       open cursor2 
       fetch next from cursor2 into @exibkpodtl_unique_id
       while @@fetch_status=0   
          begin

          EXEC sp_web_cmn_get_id 'exibkpodtl', 1, @as_unique_id OUTPUT, 'MEADOWS'
          insert into test_log(rec_uid,tb_name) values(@as_unique_id,'exibkpodtl')
          insert into exibkpodtl
         (
         unique_id,
         bk_uid,
         po_uid,
         po_no,
         po_item_no
         )
         select
         @as_unique_id as unique_id,
         @as_ibk_uid as bk_uid,
         po_uid,
         po_no,
         po_item_no
         from expodtl with(nolock) where unique_id =@exibkpodtl_unique_id
       fetch next from cursor2 into @exibkpodtl_unique_id
       end
 
 close cursor2              
 deallocate cursor2

 end

fetch next from cursor1 into @as_ibk_uid,@as_so_uid,@as_rec_crt_user,@as_rec_upd_user,@as_rec_crt_date,@as_rec_upd_date  --将游标向下移1行
end

close cursor1                  
deallocate cursor1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值