Share via


sp_mergemetadataretentioncleanup (Transact-SQL)

適用於:SQL Server

在MSmerge_genhistory、MSmerge_contents、MSmerge_tombstoneMSmerge_past_partition_mappingsMSmerge_current_partition_mappings系統數據表中執行元數據的手動清除。 此預存程式會在拓撲中的每個「發行者」和「訂閱者」端執行。

Transact-SQL 語法慣例

語法

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 類型的 OUTPUT 參數,預設值為 0

[ @num_contents_rows = ] num_contents_rows OUTPUT

傳回從 MSmerge_contents 數據表清除的數據列數目。 @num_contents_rows是int類型的OUTPUT參數,預設值為0

[ @num_tombstone_rows = ] num_tombstone_rows OUTPUT

傳回從 MSmerge_tombstone 數據表清除的數據列數目。 @num_tombstone_rows是 int 類型的 OUTPUT 參數,預設值為 0

[ @aggressive_cleanup_only = ] aggressive_cleanup_only

僅供參考之用。 不支援。 我們無法保證未來的相容性。

傳回碼值

0 (成功)或 1 (失敗)。

備註

如果資料庫中有多個發行集,而且其中任何一個發行集都會使用無限的發行集保留期間,則執行 sp_mergemetadataretentioncleanup 不會清除資料庫的合併式復寫變更追蹤元數據。 因此,請謹慎使用無限的發行集保留。 若要判斷發行集是否有無限的保留期間,請在發行者端執行 sp_helpmergepublication (Transact-SQL),並記下結果集中具有的值0retention為 的任何發行集。

權限

只有已發行資料庫的發行集存取清單中db_owner固定資料庫角色或使用者的成員可以執行 sp_mergemetadataretentioncleanup