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


sp_changemergearticle (Transact-SQL)

Изменения: 14 апреля 2006 г.

Изменяет свойства статьи слияния. Эта хранимая процедура выполняется в базе данных публикации на издателе.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_changemergearticle [ @publication = ] 'publication'
        , [ @article = ] 'article'
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

Аргументы

  • [ @publication=] 'publication'
    Имя публикации, в которой находится статья. Аргумент publication имеет тип sysname и не имеет значения по умолчанию.
  • [ @article=] 'article'
    Имя изменяемой статьи. Аргумент article имеет тип sysname и не имеет значения по умолчанию.
  • [ @property=] 'property'
    Изменяемое свойство данной статьи и публикации. Аргумент property имеет тип nvarchar(30) и может принимать одно из значений, перечисленных в таблице.
  • [ @value=] 'value'
    Новое значение заданного свойства. Аргумент value имеет тип nvarchar(1000) и может принимать одно из значений, перечисленных в таблице.

    Эта таблица описывает свойства статей и значения этих свойств.

    Свойство

  • [ @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_changemergearticle используется в репликации слиянием.

Поскольку хранимая процедура sp_changemergearticle предназначена для изменения свойств статьи, которые изначально определяются при помощи хранимой процедуры sp_addmergearticle, дополнительные сведения об этих свойствах см. в разделе sp_addmergearticle.

Изменение следующих свойств требует формирования нового моментального снимка, при этом необходимо указать значение 1 для аргумента force_invalidate_snapshot:

  • check_permissions;
  • column_tracking
  • destination_owner
  • pre_creation_cmd;
  • schema_options;
  • subset_filterclause.

Изменение следующих свойств требует повторной инициализации текущих подписок, при этом необходимо указать значение 1 для аргумента force_reinit_subscription:

  • check_permissions
  • column_tracking
  • destination_owner
  • subscriber_upload_options
  • subset_filterclause.

При задании параметру partition_options значения 3 метаданные очищаются при запуске агента слияния, поэтому время действия секционированного снимка истекает быстрее. При использовании этого параметра следует разрешить запрошенный подписчиком секционированный снимок. Дополнительные сведения см. в разделе Моментальные снимки для публикаций слиянием с параметризованными фильтрами.

Если таблица уже опубликована в других публикациях слиянием, свойство column_tracking должно иметь то же значение, что и ранее указанное для этой таблицы. Этот параметр применим только для статей таблиц.

Если в нескольких публикациях содержатся статьи, основанные на одной и той же таблице, изменение свойств delete_tracking или compensate_for_errors в одной статье приведет к аналогичному изменению этого свойства во всех остальных статьях, основанных на той же таблице.

Если имя входа или пользовательская учетная запись на издателе, от имени которой выполняется процесс слияния, не обладает необходимыми разрешениями на таблицы, недопустимые изменения регистрируются в журнале как конфликты.

При изменении значения параметра schema_option система не обновляет указанные биты. То есть при установке параметра schema_option с помощью хранимой процедуры sp_changemergearticle могут быть сброшены ранее установленные биты. Чтобы сохранить существующие параметры, необходимо выполнить логическую операцию & (побитовое И) устанавливаемого значения и текущего значения параметра schema_option, которое можно получить, выполнив хранимую процедуру sp_helpmergearticle.

Таблица «Допустимые параметры схемы»

В следующей таблице описаны допустимые значения параметра schema_option, зависящие от типа статьи.

Тип статьи Значения параметра схемы

func schema only

0x01 и 0x2000

indexed view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 и 0x200000

proc schema only

0x01 и 0x2000

table

Все параметры.

view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 и 0x200000

Разрешения

Только члены фиксированной серверной роли sysadmin или фиксированной роли базы данных db_owner могут выполнять хранимую процедуру sp_changemergearticle.

Пример

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article = N'SalesOrderHeader';

-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO

См. также

Справочник

sp_addmergearticle (Transact-SQL)
sp_dropmergearticle (Transact-SQL)
sp_helpmergearticle (Transact-SQL)
Хранимые процедуры репликации (Transact-SQL)

Другие ресурсы

How to: View and Modify Article Properties (Replication Transact-SQL Programming)
Изменение свойств публикации и статей

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Измененное содержимое
  • Обновлено описание значения 0x20000000 свойства schema_option.

5 декабря 2005 г.

Новое содержимое
  • Описаны дополнительные ограничения, возникающие при установке значения 0x20 для аргумента schema_option.
Измененное содержимое
  • Обновлены сведения о значении параметра схемы по умолчанию для статей таблицы.