存储过程不返回任何内容

时间:2014-04-08 22:49:28

标签: sql stored-procedures

找到应该没问题,但经过长时间的工作,我无法注意到我在这里做错了什么。

存储过程非常简单:

ALTER PROCEDURE MyProc  
@input char(10)

AS

    BEGIN
        SET NOCOUNT ON;
        SELECT isonum 
        FROM iso where isonum LIKE '%' + @input + '%'
        ORDER BY isonum
    END

执行查询时:选择isonum from iso where isonum like '%2333%' - 我获取数据,但在执行存储过程时:

exec MyProc '2333' - 我什么都没得到?

这里有什么问题?

2 个答案:

答案 0 :(得分:2)

更改为@input char(10)@input varchar(10)

你的sp目前正在运行

isonum from iso where isonum like '%2333 %'

答案 1 :(得分:0)

ALTER PROCEDURE MyProc  
@input varchar(10)   --<-- Use varchar here 

AS

    BEGIN
        SET NOCOUNT ON;
        SELECT isonum 
        FROM iso where isonum LIKE '%' + @input + '%'
        ORDER BY isonum
    END

&#39; CHAR&#39;或者&#39; NCHAR&#39;固定数据类型,如果它小于数据的最大长度,它们会向传递的字符串添加空格。