create procedure usp_InsertGoodsInfo @goodsID char(6),@supplierID char(6),@fullName nvarchar(80),@kind nvarchar(8),
@unitCost money,@other ntext
as
set nocount on
insert into Goods(goodsID,supplierID,fullName,unitCost,kind,other)
values(@goodsID,@supplierID,@fullName,@kind,@unitCost,@other)
select @@rowcount
成功创建过程 usp_InsertGoodsInfoexec usp_InsertGoodsInfo '200006','100004','康师傅','方便面','2.5','应立即进货'
消息 235,级别 16,状态 0,过程 usp_InsertGoodsInfo,第 5 行
无法将 char 值转换为 money。该 char 值的语法有误。
这种情况应该怎么办?

解决方案 »

  1.   

    试一下
    exec usp_InsertGoodsInfo '200006','100004','康师傅','方便面',2.5,'应立即进货'
      

  2.   

    存储过程 usp_InsertGoodsInfo  定义的变量@unitCost  是money型,
    传参数不能用 '2.5' 字符型
      

  3.   

    exec usp_InsertGoodsInfo '200006','100004','康师傅','方便面',2.5,'应立即进货'
    不行 消息 235,级别 16,状态 0,过程 usp_InsertGoodsInfo,第 5 行
    无法将 char 值转换为 money。该 char 值的语法有误。
      

  4.   


    create procedure usp_InsertGoodsInfo @goodsID char(6),@supplierID char(6),@fullName nvarchar(80),@kind nvarchar(8),
    @unitCost money,@other ntext
    as
    set nocount on
    insert into Goods(goodsID,supplierID,fullName,unitCost,kind,other)
    values(@goodsID,@supplierID,@fullName,@kind,convert(money,@unitCost),@other)
    select @@rowcount
      

  5.   

    还是出错 消息 235,级别 16,状态 0,过程 usp_InsertGoodsInfo,第 5 行
    无法将 char 值转换为 money。该 char 值的语法有误。
      

  6.   

    把你MONEY型的转换成 CHAR就可以了