Transact-SQL 参考

sp_changemergefilter

更改某些合并筛选属性。可更改的合并筛选属性包括 filternamejoin_filterclause。此存储过程在发布服务器的发布数据库上执行。

语法

sp_changemergefilter [ @publication = ] 'publication'
    ,
[ @article = ] 'article'
    , [ @filtername = ] 'filtername'
    ,
[ @property = ] 'property'
    ,
[ @value = ] 'value'
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

参数

[@publication =] 'publication'

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

[@article = ]'article'

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

[@filtername = ] 'filtername'

是筛选的当前名称。filtername 的数据类型为 sysname,没有默认设置。

[@property =] 'property'

是要更改的属性名。property 的数据类型为 sysname,没有默认设置,可以是下列值之一。

描述
filtername 筛选名。
join_filterclause 筛选子句。
join_articlename 联接项目名。

[@value =] 'value'

是指定属性的新值。value 的数据类型为 nvarchar(2000),没有默认设置。

[@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_changemergefilter 用于合并复制。

更改合并项目上的筛选需要重做快照(如果存在快照)。为此可将 @force_invalidate_snapshot 设置为 1。而且,如果该项目有订阅,则需要重新初始化订阅。也可以将 @force_reinit_subscription 设置为 1。

权限

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

请参见

sp_addmergefilter

sp_dropmergefilter

sp_helpmergefilter

系统存储过程