与参数一起使用时无法正常工作

时间:2011-08-21 10:38:07

标签: tsql

此脚本应仅选择brickurl ='http://www.bol.com/something'的行 但它几乎返回所有30行,即使其中包含其他文本

DECLARE @urlpart nvarchar
set @urlpart='bol.com'
SET @urlpart = '%'+@urlpart + '%'

SELECT * FROM Brick
WHERE BrickUrl like @urlpart

没有像这样的参数写的:

SELECT * FROM brick
WHERE BrickUrl like '%bol.com%'

正确返回包含bol.com的6行。

我无法弄清楚原因是什么,或者我做错了什么,你看到了吗?

1 个答案:

答案 0 :(得分:4)

试试这个:

DECLARE @urlpart nvarchar
set @urlpart='bol.com'
SET @urlpart = '%'+@urlpart + '%'
select @urlpart

结果:

(No column name)
%

然后你应该尝试这个

DECLARE @urlpart nvarchar(128)
set @urlpart='bol.com'
SET @urlpart = '%'+@urlpart + '%'
select @urlpart

结果;

(No column name)
%bol.com%

如果未指定nvarchar的尺寸,您将获得尺寸1。