Как просмотреть и изменить свойства статьи (программирование репликации на языке Transact-SQL)

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

Просмотр свойств статьи, принадлежащей публикации транзакций или моментальных снимков

  1. Выполните хранимую процедуру sp_helparticle, задав в качестве параметров @publication и @article имя публикации и имя статьи соответственно. Если не указан параметр @article, то сведения будут возвращены по всем статьям публикации.

  2. Чтобы получить список всех столбцов базовой таблицы, выполните хранимую процедуру sp_helparticlecolumns для статей таблиц.

Изменение свойств статьи, принадлежащей публикации транзакций или моментальных снимков

  • Выполните хранимую процедуру sp_changearticle, указав изменяемое свойство статьи в параметре @property, а его новое значение — в параметре @value.

    ПримечаниеПримечание

    Если в результате изменения необходимо создать новый моментальный снимок, необходимо также задать значение 1 в параметре @force_invalidate_snapshot, а если в результате изменения необходима повторная инициализация подписчиков, также необходимо указать значение 1 в параметре @force_reinit_subscription. Дополнительные сведения о свойствах, изменение которых требует нового мгновенного снимка или повторной инициализации, см. в разделе Изменение свойств публикации и статей.

Просмотр свойств статьи, принадлежащей публикации слиянием

  1. Выполните хранимую процедуру sp_helpmergearticle, указав в параметрах @publication и @article имя публикации и имя статьи соответственно. Если эти параметры не указаны, то сведения будут возвращены по всем статьям в публикации или на издателе.

  2. Чтобы получить список всех столбцов базовой таблицы, выполните хранимую процедуру sp_helpmergearticlecolumn для статей таблиц.

Изменение свойств статьи, принадлежащей публикации слиянием

  • Выполните хранимую процедуру sp_changemergearticle, указав изменяемое свойство статьи в параметре @property, а его новое значение — в параметре @value.

    ПримечаниеПримечание

    Если в результате изменения необходимо создать новый моментальный снимок, необходимо также задать значение 1 в параметре @force_invalidate_snapshot, а если в результате изменения необходима повторная инициализация подписчиков, также необходимо указать значение 1 в параметре @force_reinit_subscription. Дополнительные сведения о свойствах, при изменении которых требуется создание нового моментального снимка или повторная инициализация, см. в разделе Изменение свойств публикации и статей.

Пример

Следующий пример репликации транзакций производит получение свойств опубликованной статьи.

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksProductTran';

USE [AdventureWorks]
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 [AdventureWorks]
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 [AdventureWorks]
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 [AdventureWorks]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO