sqlserver循环调用存储过程

DECLARE @MyArray TABLE (Id INT IDENTITY(1,1), Value bigint)

INSERT INTO @MyArray (Value)
select id from CBO_ItemMaster where Code in ('501-000001')

-- in ('501-000001','多个料号')


DECLARE @Counter INT = 1, @MaxId INT, @CurrentValue bigint
SELECT @MaxId = MAX(Id) FROM @MyArray

WHILE @Counter <= @MaxId
BEGIN
    SELECT @CurrentValue = Value FROM @MyArray WHERE Id = @Counter
    IF @CurrentValue IS NOT NULL
        EXEC P_Cust_CalcQuotation @CurrentValue
    SET @Counter += 1
END

select a.ItemCode,a.TotalFinanceCost,a.TotalTechCost,a.SellPrice from Cust_ProductQuotation a
inner join @MyArray b  on a.Item=b.Value

 

posted @ 2025-10-19 16:36  江境纣州  阅读(6)  评论(0)    收藏  举报