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.Примечание.
Аргумент 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 для изменения статьи без необходимости удаления и создания заново всей публикации.
![]() |
---|
При изменении значения 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 |
![]() |
---|
Для публикаций, обновляемых посредством очередей, значение 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 г. |
|
5 декабря 2005 г. |
|