У меня возникла проблема с программным обеспечением, которое я настраиваю. У меня нет доступа к исходному коду, только конфиг.Попытка избежать переменной sp_executesql
Проблема заключается в следующем: в конфигурации программа ожидает, что я войду в строку, но я бы хотел, чтобы строка выскочила из сравнения и вместо этого выполнила funtion.
Использование SQL Profiler я получаю что-то вроде этого:
exec sp_executesql N'SELECT * FROM dummyTable WHERE (Name LIKE @Pattern)',N'
Это не работает в моей установке, так как модель не ясно оп ределяется в развитых. Мне нужно взять переменную , переданную как шаблон, и запустить ее через sql-функцию, но я не могу понять, как это сделать. Обычно шаблон содержит один символ в моем примере «1». Я попытался изменить шаблон, чтобы использовать escape-символ и запустить на нем свою функцию, но я думаю, что мне не хватает информации (если это вообще возможно). Переменная Я отправить от конфигурации выглядит следующим образом:
{0}' or Name like dbo.RunCalulation({0})
Давая мне следующее:
'…@Pattern nvarchar(43)',@Pattern=N'1'' or Name like dbo.RunCalulation(1) '
Это выполняется, но не дает никакого ответа, поэтому я думаю, что Esacpe символ не работа, и он сравнивает всю строку с именем.
Я реальный застрял в этом, надеюсь, кто имеет хорошее представление о том, что делать (я знаю, что не имея исходный код является реальной проблемой здесь.
привет, спасибо за быстрый ответ. Этого я и боялся. Думаю, я должен надеяться, что кто-то сможет выкопать старый код. – user3419063