Как просмотреть и изменить свойства статьи (программирование репликации на языке Transact-SQL)
Хранимые процедуры репликации позволяют программным путем вносить изменения в статьи и получать их свойства. Хранимые процедуры, используемые для этого, зависят от типа публикации, к которой принадлежит статья.
Просмотр свойств статьи, принадлежащей публикации транзакций или моментальных снимков
Выполните хранимую процедуру sp_helparticle, задав в качестве параметров @publication и @article имя публикации и имя статьи соответственно. Если не указан параметр @article, то сведения будут возвращены по всем статьям публикации.
Чтобы получить список всех столбцов базовой таблицы, выполните хранимую процедуру sp_helparticlecolumns для статей таблиц.
Изменение свойств статьи, принадлежащей публикации транзакций или моментальных снимков
Выполните хранимую процедуру sp_changearticle, указав изменяемое свойство статьи в параметре @property, а его новое значение — в параметре @value.
Примечание Если в результате изменения необходимо создать новый моментальный снимок, необходимо также задать значение 1 в параметре @force_invalidate_snapshot, а если в результате изменения необходима повторная инициализация подписчиков, также необходимо указать значение 1 в параметре @force_reinit_subscription. Дополнительные сведения о свойствах, изменение которых требует нового мгновенного снимка или повторной инициализации, см. в разделе Изменение свойств публикации и статей.
Просмотр свойств статьи, принадлежащей публикации слиянием
Выполните хранимую процедуру sp_helpmergearticle, указав в параметрах @publication и @article имя публикации и имя статьи соответственно. Если эти параметры не указаны, то сведения будут возвращены по всем статьям в публикации или на издателе.
Чтобы получить список всех столбцов базовой таблицы, выполните хранимую процедуру sp_helpmergearticlecolumn для статей таблиц.
Изменение свойств статьи, принадлежащей публикации слиянием
Выполните хранимую процедуру sp_changemergearticle, указав изменяемое свойство статьи в параметре @property, а его новое значение — в параметре @value.
Примечание Если в результате изменения необходимо создать новый моментальный снимок, необходимо также задать значение 1 в параметре @force_invalidate_snapshot, а если в результате изменения необходима повторная инициализация подписчиков, также необходимо указать значение 1 в параметре @force_reinit_subscription. Дополнительные сведения о свойствах, при изменении которых требуется создание нового моментального снимка или повторная инициализация, см. в разделе Изменение свойств публикации и статей.
Пример
Следующий пример репликации транзакций производит получение свойств опубликованной статьи.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksProductTran';
USE [AdventureWorks2008R2]
EXEC sp_helparticle
@publication = @publication;
GO
Следующий пример репликации транзакций производит изменение параметров настройки схемы опубликованной статьи.
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 [AdventureWorks2008R2]
EXEC sp_changearticle
@publication = @publication,
@article = @article,
@property = N'schema_option',
@value = @option,
@force_invalidate_snapshot = 1;
GO
Следующий пример репликации слиянием производит получение свойств опубликованной статьи.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks2008R2]
EXEC sp_helpmergearticle
@publication = @publication;
GO
Следующий пример репликации слиянием производит изменение параметров обнаружения конфликтов для опубликованной статьи.
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 [AdventureWorks2008R2]
EXEC sp_changemergearticle
@publication = @publication,
@article = @article,
@property = N'column_tracking',
@value = N'true',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO