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 с пакетом обновления 1 (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.