Можно ли заставить реплицированные команды следовать друг за другом в репликации транзакций? - PullRequest
1 голос
/ 09 июля 2019

У нас есть настройка репликации транзакций между блоком SQL Server 2012 и блоком SQL Server 2016.

Каждые полчаса статьи исходной таблицы изменяются на DELETE, а затем INSERT последовательность. Эта последовательность происходит из хранимой процедуры, выполняемой пакетом служб SSIS. Иногда DELETE был реплицирован на подписчика, но INSERT еще не сделал этого там.

Результатом является временное отсутствие данных у подписчика. Это промежуточное состояние может длиться несколько минут, так как команды реплицируются на все статьи в процессе репликации. Эти статьи таблицы используются в качестве основы для отчетов SSRS у подписчика, которые становятся неточными из-за этой проблемы.

Внутри хранимых процедур, в которых хранятся операторы DELETE - INSERT, мы попытались обернуть обе команды в BEGIN TRAN - COMMIT TRAN, но, похоже, это не помогло.

В идеале, удаление - вставка должно выполняться одновременно (например, MERGE) с использованием другой команды SQL или оборачиванием команд во что-то вроде BEGIN TRAN - COMMIT TRAN

...