Я не могу заставить sp_executesql работать с очень простым оператором.
Когда я делаю это
select * from vwChassisHistory t where t.ChassisNumber like '%1234%'
, он перенастраивает 214 строк, как я ожидаю
Но когда я делаю это
exec sp_executesql
N'select * from vwChassisHistory t where t.ChassisNumber like ''%@ChassisNumber%'' ',
N'@ChassisNumber varchar(4)',@ChassisNumber='1234'
, он возвращает 0ряды
Так что я, должно быть, делаю здесь очень глупую ошибку, но я просто не вижу ее.
Как использовать sp_executesql
с like
и parameter
?
Я смотрю на это , но этот вопрос касается динамического построения утверждения, поэтому оно мне не помогает
Также это не дает мне ответа
РЕДАКТИРОВАТЬ
Чтобы получить SqlCommand
для создания sql, как в принятом ответе, мне пришлось изменить код с этого
string chassisNumber = "1234";
string sql = "select * from vwChassisHistory t ";
string where += "where t.ChassisNumber like '%@ChassisNumber%' ";
на этот
string where = "where t.ChassisNumber like '%' + @ChassisNumber + '%' ";