sp_mergemetadataretentioncleanup (Transact-SQL)
執行 MSmerge_genhistory、MSmerge_contents、MSmerge_tombstone、MSmerge_past_partition_mappings 及 MSmerge_current_partition_mappings 系統資料表之中繼資料的手動清除。這個預存程序執行於拓撲中的每個發行者和訂閱者。
語法
sp_mergemetadataretentioncleanup [ [ @num_genhistory_rows = ] num_genhistory_rows OUTPUT ]
[ , [ @num_contents_rows = ] num_contents_rows OUTPUT ]
[ , [ @num_tombstone_rows = ] num_tombstone_rows OUTPUT ]
[ , [ @aggressive_cleanup_only = ] aggressive_cleanup_only ]
引數
- [ @num_genhistory_rows= ] num_genhistory_rows OUTPUT
傳回 MSmerge_genhistory 資料表中已清除的資料列數。num_genhistory_rows 是 int,預設值是 0。
- [ @num_contents_rows= ] num_contents_rows OUTPUT
傳回 MSmerge_contents 資料表中已清除的資料列數。num_contents_rows 是 int,預設值是 0。
- [ @num_tombstone_rows= ] num_tombstone_rows OUTPUT
傳回 MSmerge_tombstone 資料表中已清除的資料列數。num_tombstone_rows 是 int,預設值是 0。
- [ @aggressive_cleanup_only= ] aggressive_cleanup_only
僅供內部使用。
傳回碼值
0 (成功) 或 1 (失敗)
備註
如需有關清除中繼資料的詳細資訊,請參閱<合併式複寫的運作方式>。
重要事項: |
---|
如果一個資料庫上有多個發行集,而且任何一個發行集都會使用無限期的發行保留期限,則執行 sp_mergemetadataretentioncleanup 並不會清除追蹤資料庫中繼資料的合併式複寫變更。因此,在使用無限期的發行期限時,一定要特別小心。若要判斷發行集是否採用無限期的保留期限,請在發行者端執行 sp_helpmergepublication (Transact-SQL),並且注意結果集當中,是否有任何發行集的值,是代表 0 的 retention 值。 |
權限
只有 db_owner 固定資料庫角色的成員,或是已發行之資料庫的發行集存取清單中的使用者,才能夠執行 sp_mergemetadataretentioncleanup。