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