示例如下:
Create proc updateline
as
begin
IF OBJECT_ID('tempdb..#tmp1') IS NOT NULL
BEGIN
TRUNCATE TABLE #tmp1
DROP TABLE #tmp1
END
declare @Count int--总数
declare @i int--计数
set @i=1
select Row_Number()over(order by T0.Code)as Id,Code into #tmp1 from (
select distinct Code from ArticleAdd)T0
select @Count=Count(*) from #tmp1
while @i<=@Count
begin
declare ReduceQuantityoCursor cursor --声明一个游标,读取MRP01表中数据循环扣减生产计划,生产订单,采购申请,采购订单,库存
for
select Row_Number()over(order by Code)as Id,Code,U_ACode from ArticleAdd where code=(select Code from #tmp1 where Id=@i)
open ReduceQuantityoCursor --打开
declare @Code varchar(20)--Article编码
declare @U_ACode varchar(20)--Article项目编码
declare @Id varchar(20)--lineid
fetch next from ReduceQuantityoCursor into @Id,@Code,@U_ACode
while @@fetch_status=0 --循环读取
begin--1
update ArticleAdd set Lineid=@Id where Code=@Code and U_ACode=@U_ACode
fetch next from ReduceQuantityoCursor into @Id,@Code,@U_ACode
end--1
close ReduceQuantityoCursor --关闭
deallocate ReduceQuantityoCursor --删除
set @i=@i+1
end
end