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