create procedure W1_kwxiang_18_CCD_add2   
@出仓单号 varchar(20),@出仓日期 datetime,@操作人员代码 varchar(20),@备注 varchar(80),
@物料代码 varchar(20),@出仓数量 smallint,@出仓金额 smallint,
@p_message char(50) output
as
 if exists(select * from W1_kwxiang_18_CCD where 出仓单号=@出仓单号)
set @p_message= '此单号已存在!'else if exists(select * from W1_kwxiang_18_Goods where @出仓数量>库存数量 and 物料代码=@物料代码)
   set @p_message= '库存量不足!'else if exists(select * from W1_kwxiang_18_Goods where 库存数量<0)
   set @p_message= '对不起你的库存量为负!'else if @出仓单号=''
       set @p_message= '单号不能为空!'else if @出仓数量=''
     begin 
       set @p_message= '数量不能为空!'
   
     end
else if @出仓金额<0
     begin 
       set @p_message= '金额不能负数!'
    end
else
beginupdate W1_kwxiang_18_Goods
set   库存数量=库存数量-@出仓数量
where  物料代码=@物料代码insert into W1_kwxiang_18_CCD
values(@出仓单号,@出仓日期,@操作人员代码,@备注,@物料代码,@出仓数量,@出仓金额)
    set @p_message='更新成功!'
end
print(@p_message)
为什么
update W1_kwxiang_18_Goods
set   库存数量=库存数量-@出仓数量
where  物料代码=@物料代码
不能执行???????求大家帮帮忙