--替换BOM子件
declare @存货编码 varchar(50),@存货名称 varchar(50),@品牌 varchar(50)
declare @规格型号 varchar(50),@备注 varchar(50),@流水号 varchar(50),@重复数 int
declare cA cursor SCROLL LOCAL for --游标
select 存货编码,存货名称,品牌,规格型号,重复数,备注,PartId 流水号
from tempdb..bbw20180720 A
left join bas_part B on A.存货编码=B.InvCode
where 备注='保留'
and isnull(状态,'')<>'OK'
--and 存货编码='CM0010040090'
--使用游标循环
open cA
fetch next from cA into @存货编码,@存货名称,@品牌,@规格型号,@重复数,@备注,@流水号
while @@fetch_status=0
begin
if
(select COUNT(1)
from bom_opcomponent C
where C.ComponentId in --老ID
(select PartId
from tempdb..bbw20180720 D
left join bas_part E on D.存货编码=E.InvCode
where D.备注='删除'
and D.品牌+D.规格型号=@品牌+@规格型号) )>0
begin
update F set F.状态='OK'
from tempdb..bbw20180720 F
where F.存货编码=@存货编码
end
update C set C.ComponentId=@流水号--新ID
from bom_opcomponent C
where C.ComponentId in --老ID
(select PartId
from tempdb..bbw20180720 D
left join bas_part E on D.存货编码=E.InvCode
where D.备注='删除'
and D.品牌+D.规格型号=@品牌+@规格型号)
fetch next from cA into @存货编码,@存货名称,@品牌,@规格型号,@重复数,@备注,@流水号
end
close cA
deallocate cA