你需要分开
@parameter
以及
%
字符:
exec sp_executesql
N'SELECT * FROM vwChassisHistory t WHERE (t.ChassisNumber like ''%'' + @ChassisNumber + ''%'')',
-- ^ ^
-- ------------------------------------------------------------------+ |
-- -----------------------------------------------------------------------------------+
N'@ChassisNumber VARCHAR(4)', @ChassisNumber = '1234'
在原始查询中,参数名成为字符串文字的一部分,而SQL Server最终会搜索子字符串。
@ChassisNumber
以下内容:
SELECT * FROM vwChassisHistory t WHERE t.ChassisNumber LIKE '%@ChassisNumber%'
修改后的查询执行如下:
SELECT * FROM vwChassisHistory t WHERE t.ChassisNumber LIKE '%' + @ChassisNumber + '%'