CREATE PROCEDURE DBO.sp_insertDispatchDetail
@DeliveryID int, @WareHouseID int,
@ItemsIDList varchar(4000),@QuantityList varchar(4000) AS
SET NOCOUNT ON
DECLARE @Length INT
DECLARE @FirstItemID VARCHAR(50)
DECLARE @FirstQuantity VARCHAR(50)
DECLARE @ItemID varchar(20)
DECLARE @Quantity Decimal(10,2)
SELECT @Length = DATALENGTH(@ItemsIDList)
WHILE @Length > 0
BEGIN
EXECUTE @Length = PopFirstWord @ItemsIDList OUTPUT, @FirstItemID OUTPUT 1.
EXECUTE PopFirstWord @QuantityList OUTPUT, @FirstQuantity OUTPUT 2.IF @Length > 0
BEGIN
SELECT @ItemID = CONVERT(varchar(20), @FirstItemID )
SELECT @Quantity = CONVERT(Decimal(10,2), @FirstQuantity) if @Quantity <> 0
begin
declare @ret int
EXECUTE @ret = sp_insertDispatchDetailOne @DeliveryID , @WareHouseID, @ItemID, @Quantity//
if @ret <> 0 return @ret
end
END
END
首先是第1个地方输出参数为俩,但是只能有一个值赋给@length,为什么显示的是俩输出参数,输出的却是一个值呢
第2个地方也是执行了存储过程PopFristWord 为什么跟上面一行也就是1的参数分配不同的变量呢?本人对存储过程知之甚少,还请高手指点迷津,谢谢!
@DeliveryID int, @WareHouseID int,
@ItemsIDList varchar(4000),@QuantityList varchar(4000) AS
SET NOCOUNT ON
DECLARE @Length INT
DECLARE @FirstItemID VARCHAR(50)
DECLARE @FirstQuantity VARCHAR(50)
DECLARE @ItemID varchar(20)
DECLARE @Quantity Decimal(10,2)
SELECT @Length = DATALENGTH(@ItemsIDList)
WHILE @Length > 0
BEGIN
EXECUTE @Length = PopFirstWord @ItemsIDList OUTPUT, @FirstItemID OUTPUT 1.
EXECUTE PopFirstWord @QuantityList OUTPUT, @FirstQuantity OUTPUT 2.IF @Length > 0
BEGIN
SELECT @ItemID = CONVERT(varchar(20), @FirstItemID )
SELECT @Quantity = CONVERT(Decimal(10,2), @FirstQuantity) if @Quantity <> 0
begin
declare @ret int
EXECUTE @ret = sp_insertDispatchDetailOne @DeliveryID , @WareHouseID, @ItemID, @Quantity//
if @ret <> 0 return @ret
end
END
END
首先是第1个地方输出参数为俩,但是只能有一个值赋给@length,为什么显示的是俩输出参数,输出的却是一个值呢
第2个地方也是执行了存储过程PopFristWord 为什么跟上面一行也就是1的参数分配不同的变量呢?本人对存储过程知之甚少,还请高手指点迷津,谢谢!
a little faint, up