Поделиться через


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