sp_changemergefilter (Transact-SQL)
适用于:SQL Server
更改某些合并筛选属性。 此存储过程在发布服务器上对发布数据库执行。
语法
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'
发布的名称。 @publication 为 sysname,无默认值。
[ @article = ] N'article'
项目的名称。 @article 为 sysname,无默认值。
[ @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_snapshot
确认此存储过程执行的操作可能会使现有快照失效。 @force_invalidate_snapshot为位,默认值为 0
.
0
指定对合并项目所做的更改不会导致快照无效。 如果该存储过程检测到更改确实需要新的快照,则会发生错误,并且不进行任何更改。1
表示对合并项目所做的更改可能会导致快照无效,如果存在需要新快照的现有订阅,则授予现有快照标记为已过时和生成的新快照的权限。
[ @force_reinit_subscription = ] force_reinit_subscription
确认此存储过程所执行的操作是否需要重新初始化现有订阅。 @force_reinit_subscription为位,默认值为 0
.
0
指定对合并项目所做的更改不会导致重新初始化订阅。 如果该存储过程检测到更改将需要重新初始化现有订阅,则会发生错误,并且不进行任何更改。1
表示对合并项目所做的更改重新初始化现有订阅,并授予订阅重新初始化的权限。
返回代码值
0
(成功)或 1
(失败)。
注解
sp_changemergefilter
用于合并复制。
更改对合并项目的筛选需要重新创建快照(如果存在快照)。 这是通过将@force_invalidate_snapshot设置为 1
。 如果有本文的订阅,则需要重新初始化订阅,方法是将@force_reinit_subscription设置为1
该订阅。
若要使用逻辑记录,发布和项目必须满足多个要求。 有关详细信息,请参阅通过逻辑记录对相关行的更改进行分组。
权限
只有 sysadmin 固定服务器角色的成员或db_owner固定数据库角色的成员才能执行sp_changemergefilter
。