sp_changemergefilter (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。