У меня есть сценарий, в котором я использую репликацию транзакций для репликации нескольких баз данных SQL Server 2005 (один экземпляр) в одну удаленную базу данных (другой экземпляр на отдельном физическом компьютере).
Затем я выполняю некоторую обработку реплицированных данных для целей отчетности. Я использую триггеры уровня таблицы, чтобы определить изменения, какие действия выполняет мой код постобработки.
До этого момента все в порядке.
Однако я хотел бы знать, что при создании, обновлении или удалении определенных таблиц в одной и той же транзакции можно ли идентифицировать какой-либо идентификатор транзакции по репликации (или где-либо еще), поэтому я не выполнить одну и ту же пост-обработку несколько раз для одной транзакции.
Базовый пример: у меня есть таблица TUser и таблица TAddress. Если бы я должен был создать оба в одной транзакции, они также были бы скопированы в одну транзакцию. Однако в реплицированной базе данных будет запущено два триггера, что в настоящее время приводит к тому, что мой код постобработки запускается дважды. То, что я действительно хотел бы идентифицировать, - то, что эти два изменения прибыли в реплицированном в той же самой транзакции.
Возможно ли это как-нибудь? Существует ли идентификатор, который я описал, и доступен ли он?