在sql中设置参数,查询无效

时间:2015-08-06 12:38:44

标签: sql tsql

我这里有这个代码:

DECLARE @inputform varchar
SET @inputform = 'J61807017B'

SELECT * FROM test where text1 LIKE '@inputform'

这不会给我想要的输出,但是当我这样做时它会起作用:

DECLARE @inputform varchar
SET @inputform = 'J61807017B'

SELECT * FROM test where text1 LIKE 'J61807017B'

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

您需要指定变量的大小并在使用时删除引号:

DECLARE @inputform varchar(20)
SET @inputform = 'J61807017B'

SELECT * FROM test where text1 = @inputform
-- or text1 like '%'+ @inputform +'%' if you want to do partial matching

如果未指定char / varchar值的大小,则大小将为1.

从手册:

  

在数据定义或变量声明中未指定n时   声明,默认长度为1。