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