Transact-SQL 参考

sp_addmergefilter

添加新合并筛选以创建基于与另一个表的联接的分区。此存储过程在发布服务器的发布数据库上执行。

语法

sp_addmergefilter [ @publication = ] 'publication'
     ,
[ @article = ] 'article'
     , [ @filtername = ] 'filtername'
     , [ @join_articlename = ] 'join_articlename'
     ,
[ @join_filterclause = ] join_filterclause
    [ , [ @join_unique_key = ] join_unique_key ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

参数

[@publication = ] 'publication'

是包含该项目的发布名。publication 的数据类型为 sysname,没有默认设置。

[@article = ] 'article'

是项目名。article 的数据类型为 sysname,没有默认设置。

[@filtername = ] 'filtername'

是筛选名。filtername 是必需参数。filtername 的数据类型为 sysname,没有默认设置。

[@join_articlename = ] 'join_articlename'

是联接表的项目名。join_articlename 的数据类型为 sysname,没有默认设置。项目必须在 publication 给定的发布内。

[@join_filterclause = ] join_filterclause

是限定联接的筛选子句。join_ filterclause 的数据类型为 nvarchar(2000)join_filterclause 只定义此存储过程中的布尔筛选。

[@join_unique_key = ] join_unique_key

指定联接是否在 @article 所指定表中的唯一键上。join_unique_key 的数据类型为 int,默认设置为 0。0 表示非唯一键。1 表示在 @join_articlename 中的唯一键上。

[@force_invalidate_snapshot = ] force_invalidate_snapshot

确认此存储过程采取的操作可能会使现有的快照无效。force_invalidate_snapshot 的数据类型为 bit,默认设置为 0。0 指定对合并项目的更改将不会导致快照无效。如果此存储过程检测到更改确实需要新的快照,则将会出现错误,且不会进行更改。而 1 指定对合并项目的更改可能导致快照无效,而且如果有需要新快照的现有订阅,则值 1 将提供适当的权限,使现有快照被标记为废弃并生成新快照。

[@force_reinit_subscription = ] force_reinit_subscription

确认此存储过程采取的操作可能要求现有的订阅重新初始化。force_reinit_subscription 的数据类型为 bit,默认设置为 0。0 指定对合并项目的更改不会导致订阅重新初始化。如果存储过程检测到更改需要重新初始化订阅,则会发生错误,且不会进行任何更改。而 1 指定对合并项目的更改将导致现有的订阅重新初始化,并提供使订阅重新初始化发生的权限。

返回代码值

0(成功)或 1(失败)

注释

sp_addmergefilter 用于合并复制。

通常,该选项用于具有对已发布的主键表的外键引用的项目,而且该主键表含有在其项目中定义的筛选。主键行的子集用于决定复制到订阅服务器的外键行。

权限

只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_ addmergefilter

请参见

sp_changemergefilter

sp_dropmergefilter

sp_helpmergefilter

系统存储过程