如何:使用參數化篩選管理合併式發行集的資料分割 (複寫 Transact-SQL 程式設計)
參數化資料列篩選器可用來產生非重疊的資料分割。這些資料分割可以限制為只有一個訂閱能收到給定資料分割。在這種狀況中,大量的訂閱者會導致大量的資料分割,而這種情況則需要同等數量的資料分割快照集。如需詳細資訊,請參閱<參數化資料列篩選器>。若要使用參數化篩選以更好的方式管理發行集,可以使用複寫預存程序,以程式設計的方式列舉現有的資料分割。您也可以建立及刪除現有的資料分割。您可取得下列有關現有資料分割的資訊:
資料分割的篩選方式 (使用 SUSER_SNAME (Transact-SQL) 或 HOST_NAME (Transact-SQL))。
產生資料分割快照集的工作名稱。
上次執行資料分割快照集作業的時間。
雖然兩部分快照集的第二部份可以在初始化新訂閱時視需要而產生,但下列程序可用來控制產生此快照集的方式,並在最方便的時候預先產生此快照集。如需詳細資訊,請參閱<含參數化篩選之合併式發行集的快照集>。
[!附註]
當發行集具有參數化篩選,可產生具有非重疊資料分割的訂閱時,則如果遺失了特定訂閱而需要重新建立時,就必須執行下列作業:移除先前訂閱的資料分割、重新建立訂閱,然後重新建立資料分割。複寫會在發行集建立指令碼產生時,針對現有的「訂閱者」資料分割產生建立指令碼。如需詳細資訊,請參閱<編寫複寫指令碼>。
若要在現有的資料分割上檢視資訊
- 在發行集資料庫的「發行者」端,執行 sp_helpmergepartition (Transact-SQL)。指定 @publication 出版物的名稱。(選擇性) 指定 @suser_sname 或 @host_name,以根據單一篩選準則僅傳回資訊。
若要定義新的資料分割並產生新的資料分割快照集
在發行集資料庫的「發行者」端,執行 sp_addmergepartition (Transact-SQL)。指定 @publication 的發行集名稱,並針對下列其中一個項目定義資料分割的參數化值:
@suser_sname - 當參數化篩選是由 SUSER_SNAME (Transact-SQL) 所傳回的值定義時。
@host_name - 當參數化篩選是由 HOST_NAME (Transact-SQL) 所傳回的值定義時。
建立並初始化這個新資料分割的參數化快照集。如需詳細資訊,請參閱<如何:使用參數化篩選建立合併式發行集的快照集 (複寫 Transact-SQL 程式設計)>。
若要刪除資料分割
在發行集資料庫的「發行者」端,執行 sp_dropmergepartition (Transact-SQL)。指定 @publication 的發行集名稱,並針對下列其中一個項目定義資料分割的參數化值:
@suser_sname - 當參數化篩選是由 SUSER_SNAME (Transact-SQL) 所傳回的值定義時。
@host_name - 當參數化篩選是由 HOST_NAME (Transact-SQL) 所傳回的值定義時。
這也會移除資料分割的快照集作業和快照集檔案。