我们在SQL Server 2012框和SQL Server 2016框之间设置了事务复制设置。
每半小时,源表项目将按DELETE
然后按INSERT
顺序进行更改。此序列来自SSIS包装执行的存储过程。有时DELETE
已复制到订阅服务器,但INSERT
尚未复制到订阅服务器。
结果是临时丢失订户上的数据。随着命令被复制到所有正在复制的文章中,此过渡状态可能持续几分钟。这些表文章用作订户处SSRS报告的基础,由于此问题,这些报告变得不准确。
在容纳DELETE - INSERT
语句的存储过程中,我们尝试将两个命令都包装在BEGIN TRAN
-COMMIT TRAN
中,但这似乎无济于事。
理想情况下,删除-插入将组合在一起以使用另一条SQL命令同时发生(类似于MERGE
),或者将命令包装在类似于BEGIN TRAN
-COMMIT TRAN
的地方