sp_changemergefilter (Transact-SQL)

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

主题链接图标Transact-SQL 语法约定

语法

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,无默认值。

  • [ @value=] 'value'
    指定属性的新值。value的数据类型为 nvarchar(1000),无默认值。

    下表说明项目的属性和这些属性的值。

    属性

    说明

    filter_type

    1

    联接筛选器。

    若要支持 SQL Server Compact 3.5 SP1 订阅服务器,此选项是必需的。

     

    2

    逻辑记录关系。

     

    3

    联接筛选器也是一种逻辑记录关系。

    filtername

     

    筛选器的名称。

    join_articlename

     

    联接项目的名称。

    join_filterclause

     

    筛选子句。

    join_unique_key

    True

    联接位于唯一键上。

     

    False

    联接没有位于唯一键上。

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    确认此存储过程所执行的操作是否会使现有快照失效。force_invalidate_snapshot 的数据类型为 bit,默认值为 0

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

    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