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


sp_changearticle (Transact-SQL)

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

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

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

Синтаксис

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

Аргументы

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

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

    Свойство

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

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

  • [ @publisher= ] 'publisher'
    Задает издатель, отличный от SQL Server. Аргумент publisher имеет тип sysname и значение по умолчанию NULL.

    ms175980.note(ru-ru,SQL.90).gifПримечание.
    Аргумент publisher не должен использоваться при изменении свойств статьи на издателе SQL Server.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

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

Если статья принадлежит к публикации, которая поддерживает одноранговую репликацию транзакций, то можно изменить только свойства description, ins_cmd, upd_cmd и del_cmd.

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

  • del_cmd;
  • dest_table;
  • destination_owner;
  • ins_cmd;
  • pre_creation_cmd;
  • schema_options;
  • upd_cmd.

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

  • del_cmd;
  • dest_table;
  • destination_owner;
  • filter;
  • ins_cmd;
  • status;
  • upd_cmd.

Для существующей публикации можно использовать sp_changearticle для изменения статьи без необходимости удаления и создания заново всей публикации.

ms175980.note(ru-ru,SQL.90).gifПримечание.
При изменении значения schema_option система не выполняет побитового обновления. Это значит, что при задании аргумента schema_option с помощью процедуры sp_changearticle существующие битовые настройки могут быть отключены. Чтобы сохранить существующие параметры, необходимо выполнить логическую операцию & (Побитовое И) устанавливаемого значения и текущего значения параметра schema_option, которое можно получить, выполнив хранимую процедуру sp_helparticle.

Допустимые параметры схемы

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

Тип статьи Тип репликации  

 

Репликация транзакций

Репликация моментальных снимков

logbased

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

Все параметры, кроме 0x02

logbased manualfilter

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

Все параметры, кроме 0x02

logbased manualview

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

Все параметры, кроме 0x02

indexed view logbased

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

Все параметры, кроме 0x02

indexed view logbased manualfilter

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

Все параметры, кроме 0x02

indexed view logbased manualview

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

Все параметры, кроме 0x02

indexed view logbase manualboth

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

Все параметры, кроме 0x02

proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 и 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 и 0x80000000

serialized proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 и 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 и 0x80000000

proc schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 и 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 и 0x80000000

view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 и 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 и 0x80000000

func schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 и 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 и 0x80000000

indexed view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 и 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 и 0x80000000

ms175980.note(ru-ru,SQL.90).gifПримечание.
Для публикаций, обновляемых посредством очередей, значение 0x80 аргумента schema_option должно быть включено. Публикации, отличные от публикаций SQL Server, поддерживают следующие значения аргумента schema_option: 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000 и 0x4000.

Разрешения

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

Пример

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));

-- Change the schema options to replicate schema with XML.
USE [AdventureWorks]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

См. также

Справочник

sp_addarticle (Transact-SQL)
sp_articlecolumn (Transact-SQL)
sp_droparticle (Transact-SQL)
sp_helparticle (Transact-SQL)
sp_helparticlecolumns (Transact-SQL)

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

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

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

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

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

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

14 апреля 2006 г.

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

5 декабря 2005 г.

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