共用方式為


合併訂閱已過期且必須上載變更

如果合併式發行集的訂閱過期,並且您要將變更從「訂閱者」上載至「發行者」,則必須手動執行此操作。

說明

合併式複寫使用發行集保留期限 (sp_addmergepublication (Transact-SQL)@retention@retention_period_unit 參數),判斷訂閱過期的時間。保留期限到達後,複寫才可以清除發行集和訂閱資料庫中的中繼資料。如需詳細資訊,請參閱<訂閱逾期與停用>。您無法從過期的訂閱上載變更,因為與「訂閱者」端資料列相關的中繼資料將不再會出現在「發行者」端。

使用者動作

若要將變更上載至發行者:

  1. 使用 tablediff 公用程式來判斷「發行者」與「訂閱者」之間存在差異的資料列。如需有關在複寫資料表上使用此公用程式的資訊,請參閱<如何:比較複寫資料表的差異 (複寫程式設計)>。

  2. 手動或透過下列方法之一從「訂閱者」上載變更:

    • 重新建立訂閱,指定不應在「訂閱者」端套用的快照集。如需詳細資訊,請參閱<不使用快照集初始化合併訂閱>。在建立訂閱後,為每個應上載至「發行者」的資料列執行「虛擬更新」:執行手動虛擬更新,例如:

      UPDATE Sales.SalesOrderHeader SET RevisionNumber = RevisionNumber WHERE SalesOrderID > 4100

      或為每個資料列執行 sp_mergedummyupdate。如需詳細資訊,請參閱<sp_mergedummyupdate (Transact-SQL)>。

    • 使用 tablediff 公用程式產生 Transact-SQL 指令碼,以使資料聚合。如需詳細資訊,請參閱<tablediff 公用程式>。Transact-SQL 指令碼將覆寫目的地 (在此情況下為「發行者」) 上所有無法聚合的資料,因此,在從「訂閱者」上載的資料優先於「發行者」端保留資料的情況下,方可使用此選項。

請參閱

概念