2015-12-07 63 views
0

如果我想要被規定爲同步(並任選含有一些數據的話)一個SQL Server CE數據庫的副本,我可以用SqlCeSyncStoreSnapshotInitialization使其:生成SQL Server CE數據庫的快照與簡單複製.SDF文件有什麼不同?

using (var conn = new SqlCeConnection(sourceConnectionString)) 
{ 
    var snapshot = new SqlCeSyncStoreSnapshotInitialization(); 
    snapshot.GenerateSnapshot(conn, "snapshot.sdf"); 
} 

如何產生的CE數據庫中的不同原版的?如果我只是複製了原始的.SDF文件,它會有什麼不同嗎?

回答

0

是的,它會有所不同。快照是一個專門準備的SQL Server Compact數據庫,其中包含表模式,數據(可選)和變更跟蹤基礎結構。在客戶端的第一個同步會話期間,會更新客戶端特定的元數據,並且創建快照後發生的任何更改都會下載到客戶端數據庫。

https://technet.microsoft.com/en-us/subscriptions/microsoft.synchronization.data.sqlserverce.sqlcesyncstoresnapshotinitialization(v=sql.105).aspx

+0

謝謝ErikEJ,但問題是_how_不同。我已閱讀所有在線文檔,似乎沒有任何解釋。只是複製原始的.SDF文件看起來工作正常,所以我想知道從第一次創建快照中獲得的好處。 –

1

不同的是,在同步Fx的每個副本獲得一個唯一的副本ID。當您使用生成的快照時,會在首次同步時重置。如果您只是簡單地複製sdf,您將最終得到具有相同副本ID的數據庫,並且會導致同步混亂。

假設你有一個副本ID 1的快照,複製它爲B,但它仍然有副本ID爲1 您同步處理與服務器Z,和服務器ž會記住它的副本ID同步的1

您嘗試將B與Z同步,Z使用與副本ID 1(A)同步的元數據,並認爲B是A.

您現在正在使用同步元數據作爲另一個數據庫,因爲無法區分他們倆。

+0

謝謝JuneT。你能描述同步會如何混亂嗎?順便說一下,我正在使用SyncOrchestrator。在回答另一個問題時,您說Snapshots不能與SyncOrchestrator配合使用。這仍然是正確的嗎? –

相關問題