将数据类型varchar转换为float SQL Server存储过程时出错

时间:2015-09-08 04:10:58

标签: sql sql-server-2008

我正在搜索和搜索,但仍然......给我一个错误。

我有这个存储过程:

CREATE procedure _spItemList
(
    @branch nchar(12)
    , @ItemNo float
    , @ItemDescription char(60)
)
as
begin
        SET NOCOUNT ON;

        select          
            Branch
            , CONVERT(varchar(100), ItemNo) ItemNo
            , Description1
            , Description2
            , FullDescription
        from
            _ItemList
        where           
            (Branch LIKE '%' + @branch + '%' or ISNULL(@branch, '') = '')
            and (ItemNo LIKE '%' + @ItemNo + '%' or ISNULL(@ItemNo, '') = '')
            and (FullDescription LIKE '%' + @ItemDescription + '%' or ISNULL(@ItemDescription, '') = '')
    end

我有以下表结构:

CREATE TABLE _ItemList
(
    [ItemNo] [float] NULL,
    [Description1] [char](30) NULL,
    [Description2] [char](30) NULL,
    [FullDescription] [char](60) NULL
)

当我执行存储过程时,出现错误:

  

将数据类型varchar转换为float

时出错

出了什么问题?存储过程中的SQL Server参数已与表中的列具有相同的数据类型。有谁知道吗?

1 个答案:

答案 0 :(得分:1)

尝试转换这句话,因为你的'%'(字符串)与@ItemNo(浮点值)连接,请查看:

None