SET @whereCond = @whereCond + 'AND name LIKE' '%' '+ @name +' '%' ''
Здесь что-то не так? После того, как я сгенерировал условие where, я выполняю его с sp_executesql
, но я получил что-нибудь. Когда я выбираю то же самое без sp, это нормально.
Как использовать LIKE в sp_executesql? Можете привести несколько примеров, пожалуйста?
Спасибо.
UPDATE
declare @name nvarchar(50)
set @name = 'a'
SELECT *
FROM Tbl_Persons WHERE 1 = 1 AND lastname LIKE '%a%'
exec sp_executesql
N'SELECT *
FROM Tbl_Persons WHERE 1 = 1 AND lastname LIKE ''%@name%''',
N'@name nvarchar(50)',
@name=@name
Первый запрос возвращает значения, второй ничего не возвращает.
Какая разница?