Назад | Перейти на главную страницу

Замените запрос SQL Server другим перед выполнением

Я пытаюсь работать с устаревшим приложением на SQL Server, которое в какой-то момент выполняет следующий запрос

SELECT serverproperty('EngineEdition') as sqledition

Сервер отвечает 2 (это правильная версия), но приложение закрывается, так как приложение требует запуска через SQL Server Express, а это 4. У нас нет доступа к коду, и разработчик давно ушел.

Есть ли способ настроить SQL Server так, чтобы при получении этого запроса он просто возвращал 4, а не значение свойства?

Спасибо

Вам будет лучше просто установить Express и указать его на это. Все, что вы делаете в связи с этим, очевидно, в лучшем случае является взломом с неизвестными рисками и последствиями. Если приложение переросло ограничения Express, то это хороший показатель того, что вам нужно отказаться от этого приложения, даже если не считать уже упомянутых вами признаков того, что пора двигаться дальше.

+1 для сквиллмена. Невозможно отменить возврат "serverproperty". Если код написан на .NET, вы можете попросить разработчика взломать его (используя Reflector или аналогичный). Поскольку запрос, скорее всего, находится в исходном тексте, возможно, вам даже повезет, заменив его редактором HEX на что-то вроде

SELECT 4 as sqledition