我目前正在评估Microsoft同步框架作为在两个SQL数据库之间同步数据的可能解决方案。到目前为止,我看到的示例依赖于“跟踪表”,其中包含用于跟踪要同步的更改的信息,主表上的触发器使它们保持最新。
我的数据库已包含大量此信息(对于软件的现有功能),因此最好使用它而不必将其全部迁移到新的跟踪表。我也不喜欢将每个表加倍到数据表和跟踪表的想法,并为每个表添加三个触发器 - 听起来这可能是性能问题?
有没有办法自定义同步框架使用的跟踪机制(即跟踪更改的方式)?
答案 0 :(得分:1)
是的,完全可以编写自己的逻辑来跟踪更改并使用它们。例如。我使用过的一个db syncproviders,要求你定义selectincrementalinsert命令。现在,数据来自哪些表以及如何过滤掉最新记录是无关紧要的 - 您只需要定义一个查询或sp来为您提供此数据。这适用于所有其他增量sps(处理变更跟踪)
除此之外,您需要一个锚值来定义上次同步发生的时间。我认为避免这一点没有意义,因为它专门用于同步,而您现有的跟踪表将不包含此替代品。