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,并记下结果集中具有值0retention的任何发布。

权限

只有已发布数据库的发布访问列表中的db_owner固定数据库角色或用户的成员才能执行sp_mergemetadataretentioncleanup