У нас есть несколько приложений, пишущих в нашу базу данных MS SQL 2008 R2, и существует необходимость сбора информации об этих приложениях во время этих записей. Код базы данных (триггеры, хранимые процедуры и т. Д.) Находится под моим контролем и может быть изменен, но не код приложения.
Я склоняюсь к использованию CONTEXT_INFO
для хранения информации, специфичной для приложения, и извлечения ее в триггерах. Вопрос в 1 миллион долларов: «Как я могу заставить приложения устанавливать CONTEXT_INFO
, если они не хотят менять код приложения?».
У меня действительно есть доступ к строкам подключения, которые используют эти приложения, поскольку они находятся в файлах конфигурации.
Мне не удалось найти какие-либо свойства в строке подключения, которые я могу использовать для установки CONTEXT_INFO
(или выполнить любой TSQL при инициализации). В основном я надеялся смоделировать поведение опции SQLCMD -q
, например, SQLCMD -q "SET CONTEXT_INFO 0x1244"
.
Есть ли способ симулировать это поведение в ADO.NET через конфигурацию? Или другой способ сделать это? Любые указатели приветствуются.
Если это невозможно, я могу вернуть сообщение и сказать «менеджменту», что код приложения должен быть изменен.