是否可以使用Microsoft同步框架定义自定义跟踪机制?

问题描述:

我目前正在评估Microsoft同步框架作为两个SQL数据库之间同步数据的可能解决方案。我迄今看到的例子依赖于“跟踪表”,其中包含用于跟踪要同步的更改的信息,主表上的触发器使它们保持最新状态。是否可以使用Microsoft同步框架定义自定义跟踪机制?

我的数据库已经包含了很多这些信息(对于软件的一个现有功能),所以最好使用它,而不必将它们全部移植到新的跟踪表中。我也不喜欢把每张表加倍到数据表和跟踪表的想法,并且向每张表添加三个触发器 - 这听起来像可能是性能问题?

是否有任何方法来定制同步框架使用的跟踪机制(即跟踪更改的方式)?

是的,完全可以编写自己的逻辑来跟踪更改并使用它们。例如。我使用过的一个db syncproviders,要求你应该定义selectincrementalinsert命令。现在数据来自哪个表格以及如何过滤最新记录并不重要 - 您只需要定义一个查询或一个可以为您提供这些数据的sp。这适用于所有其他增量sps(处理变更跟踪)

除此之外,您需要一个定位值来定义上次同步发生的时间。我认为避免这一点是毫无意义的,因为这是专门用于同步的,并且您现有的跟踪表不会包含替代品。

+0

你在使用'SyncAdapter'吗?我在Sync Framework的4.0 CTP上询问了这个[MS论坛上的同样问题](http://social.microsoft.com/Forums/en/synclab/thread/2335abd9-bc91-4ede-b515-67a39d000967) SyncAdapters在最新版本中已被废弃。 – adrianbanks 2010-11-27 20:14:39

+0

我正在使用SyncAdapter。虽然他们说没有太多的发展,但它的工作方式确实很好,并且不会像这样被弃用。它甚至适用于非sql服务器数据库,所以我没有看到任何理由不使用它。 MS可能想要推广sql server 2008,这对他们来说很自然。 – 2010-11-28 04:55:19

+0

你知道我在哪里可以找到示例代码 - 开始学习这个Microsoft SyncFramework - 我已经尝试了msdn - 但它似乎没有编译它们的示例代码。 – 2010-11-29 08:37:32