На работе мы только начали создавать структуру аудита для нашей базы данных (т.е. регистрировать, какие данные были изменены при их создании или обновлении).
Мы бы очень хотели реализовать это с помощью триггеров, поскольку данные иногда импортируются в систему из других мест, а не только через интерфейс. Это кажется довольно общим решением.
Однако я хотел бы сделать одно дополнение: если пользователь запускает обновление, которое обновляет более одной таблицы, я бы хотел, чтобы они были сгруппированы вместе в пакет (т.е. для создания уникального идентификатора пакета для каждого набора обновлений).
Проблема в получении идентификатора пакета из триггера. Каждое обновление будет выполняться в рамках транзакции, поэтому мне было интересно, могу ли я использовать идентификатор транзакции для создания идентификатора пакета. Однако я не могу найти способ получить доступ к идентификатору транзакции где-либо в T-SQL.
У кого-нибудь есть идеи?
P.S. - Мы работаем с SQL Server 2008, если это имеет значение.