使用資料表結構描述
本主題描述使用於用戶端和對等資料庫中所建立之資料表結構描述的一些方法。
用戶端與伺服器同步處理
在用戶端的初始同步處理工作階段期間,Sync Framework 會在用戶端資料庫中建立資料表。如需詳細資訊,請參閱 HOW TO:初始化用戶端資料庫及使用資料表結構描述。建立這些資料表之後,允許進行一些結構描述變更。
Sync Framework 不會自動將結構描述變更從伺服器傳播到用戶端。如需如何處理伺服器上結構描述變更的詳細資訊,請參閱部署及版本設定應用程式。用戶端資料庫中支援下列結構描述變更:
卸除資料表。下次同步處理期間的行為取決於您為 CreationOption 指定的值。如果用戶端上完全不要使用資料表,請從 SyncTableCollection 移除資料表。當您卸除已啟用變更追蹤的資料表時,也會卸除為該資料表追蹤刪除作業的系統資料表。因此,從上次同步處理以來的任何刪除作業都不會上傳至伺服器。
加入新資料行。
為與快照集同步處理有關的資料表卸除資料行。其他類型同步處理不支援此變更。
加入、卸除,及重新命名索引。
加入、卸除,及重新命名主索引鍵和其他條件約束。
修改預設值。
不支援所有其他變更,並可能導致同步處理失敗。
有些應用程式中,伺服器與用戶端的結構描述並不相同。下列幾點摘要總結資料表的行為,以及 Sync Framework 用來在用戶端更新該資料表之 ADO.NET 資料集的行為:
如果資料集包含 Column1 和 Column2,而資料表包含 Column1、Column2 和 Column3:會套用 Column1 和 Column2 中的值,而 Column3 則設定為其預設值,如果資料行沒有任何預設值,則為 NULL。
如果資料集包含 Column1、Column2 和 Column3,而資料表包含 Column1 和 Column2:會套用 Column1 和 Column2 中的值,而忽略 Column3。
如果資料集包含 Column1、Column2 和 Column3,而資料表包含 Column1 和 Column2,以及 Column4:會套用 Column1 和 Column2 中的值,而 Column3 則設定為其預設值,如果資料行沒有任何預設值,則為 NULL,並忽略 Column4。
對等同步處理
對等同步處理不提供對等資料庫的自動初始化,也不會在每個對等上建立資料表變更追蹤基礎結構。如需結構描述和資料初始化的詳細資訊,請參閱 HOW TO:設定及執行共同作業同步處理 (非 SQL Server)中的<初始化伺服器資料庫>。對等資料庫中基底資料表的結構描述變更沒有任何限制。但是應用程式必須先確保,如果發生任何結構描述變更,會更新選取及套用變更的命令。例如,如果您加入資料行至資料表,就必須更新將變更插入資料表中的命令,以包含該新資料行。
在對等案例中,對等資料庫之間的結構描述可能會不同。例如,第一個對等上的資料表結構描述可能會使用不易讀取的數值資料行名稱。您可以使用 DbSyncColumnMapping 和 DbSyncColumnMappingCollection 物件,將資料行對應至其他對等項更容易讀取的名稱。