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的参数分配不同的变量呢?本人对存储过程知之甚少,还请高手指点迷津,谢谢!