找到应该没问题,但经过长时间的工作,我无法注意到我在这里做错了什么。
存储过程非常简单:
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'
- 我什么都没得到?
这里有什么问题?
答案 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;固定数据类型,如果它小于数据的最大长度,它们会向传递的字符串添加空格。