CREATE PROCEDURE MyTest2  @CategoryID int,@CategoryName nvarchar(15) 
 AS select * from Categories where CategoryName like '%'+@CategoryName+'%'
GOexec MyTest2 'u'服务器: 消息 8114,级别 16,状态 4,过程 MyTest2,行 0
将数据类型 varchar 转换为 int 时出错。错哪儿了?

解决方案 »

  1.   

    CREATE PROCEDURE MyTest2  @CategoryID int,@CategoryName nvarchar(15) 
    AS
     select * from Categories where CategoryName like '%'+ltrim(@CategoryName)+'%'
    GOexec MyTest2 'u'
      

  2.   

    你的sp有两个参数,第一个是int类型,而第二个是nvarchar类型,
    你调用的时候,存入的第一个实参是字符串,不很清楚了吗?
      

  3.   

    CREATE PROCEDURE MyTest2  @CategoryID int,@CategoryName nvarchar(15) 
    AS
     select * from Categories where CategoryName like '%'+ltrim(@CategoryName)+'%'
    GOexec MyTest2 'u'
      

  4.   

    exec MyTest2  1,'u'
      

  5.   

    CREATE PROCEDURE MyTest2  @CategoryName nvarchar(15) 
    AS
     select * from Categories where CategoryName like '%'+@CategoryName+'%'
    GOexec MyTest2 'u'
    不好意思,我发太快了,是你参数没匹配好.
      

  6.   

    第一个参数好像没用,去掉吧。CREATE PROCEDURE MyTest2  @CategoryName nvarchar(15) 
     AS select * from Categories where CategoryName like '%'+@CategoryName+'%'
    GOexec MyTest2 'u'
      

  7.   

    CREATE PROCEDURE MyTest2  @CategoryID int,@CategoryName nvarchar(15) 
     AS select * from Categories where CategoryName like '%'+@CategoryName+'%'
    GO
    --第一个参数楼主没写上。
    exec MyTest2 1,'u'