sp_changemergefilter (Transact-SQL)

适用于:SQL Server

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

Transact-SQL 语法约定

语法

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

参数

[ @publication = ] N'publication'

发布的名称。 @publicationsysname,无默认值。

[ @article = ] N'article'

项目的名称。 @articlesysname,无默认值。

[ @filtername = ] N'filtername'

筛选器的当前名称。 @filtername为 sysname,无默认值。

[ @property = ] N'property'

要更改的属性的名称。 @property为 sysname,没有默认值。

[ @value = ] N'value'

指定属性的新值。 @value为 nvarchar(1000),没有默认值。

下表描述了项目的属性以及这些属性的值。

属性 说明
filter_type 1 联接筛选器。

支持 SQL Server Compact 订阅服务器需要此选项。
2 逻辑记录关系。
3 联接筛选器也是一种逻辑记录关系。
filtername 筛选器名称。
join_articlename 联接项目名。
join_filterclause 筛选子句。
join_unique_key true 联接位于唯一键上。
false 联接不在唯一键上。

[ @force_invalidate_snapshot = ] force_invalidate_快照

确认此存储过程执行的操作可能会使现有快照失效。 @force_invalidate_快照为,默认值为 0.

  • 0指定对合并项目所做的更改不会导致快照无效。 如果该存储过程检测到更改确实需要新的快照,则会发生错误,并且不进行任何更改。

  • 1表示对合并项目所做的更改可能会导致快照无效,如果存在需要新快照的现有订阅,则授予现有快照标记为已过时和生成的新快照的权限。

[ @force_reinit_subscription = ] force_reinit_subscription

确认此存储过程所执行的操作是否需要重新初始化现有订阅。 @force_reinit_subscription为,默认值为 0.

  • 0 指定对合并项目所做的更改不会导致重新初始化订阅。 如果该存储过程检测到更改将需要重新初始化现有订阅,则会发生错误,并且不进行任何更改。

  • 1 表示对合并项目所做的更改重新初始化现有订阅,并授予订阅重新初始化的权限。

返回代码值

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

注解

sp_changemergefilter用于合并副本 (replica)。

更改对合并项目的筛选需要重新创建快照(如果存在快照)。 这是通过将@force_invalidate_快照设置为 1。 如果有本文的订阅,则需要重新初始化订阅,方法是将@force_reinit_subscription设置为1该订阅。

若要使用逻辑记录,发布和项目必须满足多个要求。 有关详细信息,请参阅通过逻辑记录对相关行的更改进行分组

权限

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