2010-01-28 136 views
0

我们希望使用更改跟踪来实现SQL Server 2008 Enterprise/Standard实例和Express 2008实例之间的双向同步。SQL Server 2008更改跟踪

当我们读取远程更改,然后在本地服务器上进行调整时,我们如何保持这些语句不被更改跟踪?我预见一台服务器会无限循环跟踪更改,然后另一台服务器进行更改并跟踪更改,另一台服务器进行更改等。

在执行同步操作时禁用对该表的更改跟踪可能会漏掉该表格上其他进程的变化,所以我不认为这是答案。

有没有办法在每个语句或每个事务的基础上禁用更改跟踪?

编辑:我发现了WITH CHANGE_TRACKING_CONTEXT命令,所以我可以使用它来指定更改由同步代码执行的时间,以便同步代码本身不会选择它们并使用它们。

回答

1

更改跟踪并非真正用作双向复制。您应该找出一些方法来确定实际进行更改的实例,然后您的“复制”代码应该能够确保复制服务器上更改的行不会再次包装回原始服务器。

+0

实际上,我们使用了更改跟踪,并且只是让同步过程添加了不同的上下文,以便我们可以确定哪些更改是同步更改或原始更改。到目前为止,它工作得很好。 – Matt 2010-02-04 23:16:18