2010-10-28 82 views
1

我目前正在評估Microsoft同步框架作爲兩個SQL數據庫之間同步數據的可能解決方案。我迄今看到的例子依賴於「跟蹤表」,其中包含用於跟蹤要同步的更改的信息,主表上的觸發器使它們保持最新狀態。是否可以使用Microsoft同步框架定義自定義跟蹤機制?

我的數據庫已經包含了很多這些信息(對於軟件的一個現有功能),所以最好使用它,而不必將它們全部移植到新的跟蹤表中。我也不喜歡把每張表加倍到數據表和跟蹤表的想法,並且向每張表添加三個觸發器 - 這聽起來像可能是性能問題?

是否有任何方法來定製同步框架使用的跟蹤機制(即跟蹤更改的方式)?

回答

1

是的,完全可以編寫自己的邏輯來跟蹤更改並使用它們。例如。我使用過的一個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