Vorgehensweise: Anzeigen und Ändern von Artikeleigenschaften (Replikationsprogrammierung mit Transact-SQL)

Artikel können mithilfe gespeicherter Replikationsprozeduren programmgesteuert geändert und ihre Eigenschaften zurückgegeben werden. Die verwendeten gespeicherten Prozeduren hängen vom Typ der Veröffentlichung ab, zu der der Artikel gehört.

So zeigen Sie die Eigenschaften eines Artikels an, der zu einer Snapshot- oder einer Transaktionsveröffentlichung gehört

  1. Führen Sie sp_helparticle aus, und geben Sie dabei den Namen der Veröffentlichung für den @publication-Parameter und den Namen des Artikels für den @article-Parameter an. Wenn Sie @article nicht angeben, werden Informationen zu allen Artikeln in der Veröffentlichung zurückgegeben.

  2. Führen Sie sp_helparticlecolumns aus, damit die Tabellenartikel alle in der Basistabelle verfügbaren Spalten auflisten.

So ändern Sie die Eigenschaften eines Artikels, der zu einer Snapshot- oder einer Transaktionsveröffentlichung gehört

  • Führen Sie sp_changearticle aus, und geben Sie dabei die zu ändernde Artikeleigenschaft im @property-Parameter und den neuen Wert dieser Eigenschaft im @value-Parameter an.

    HinweisHinweis

    Wenn die Änderung das Generieren eines neuen Snapshots erfordert, müssen Sie zudem den Wert 1 für @force_invalidate_snapshot angeben, und wenn die Änderung das erneute Initialisieren der Abonnenten erfordert, müssen Sie auch den Wert 1 für @force_reinit_subscription angeben. Weitere Informationen über Eigenschaften, die bei Änderung einen neuen Snapshot oder eine erneute Initialisierung erfordern, finden Sie unter Ändern von Veröffentlichungs- und Artikeleigenschaften.

So zeigen Sie die Eigenschaften eines Artikels an, der zu einer Mergeveröffentlichung gehört

  1. Führen Sie sp_helpmergearticle aus, und geben Sie dabei den Namen der Veröffentlichung für den @publication-Parameter und den Namen des Artikels für den @article-Parameter an. Wenn Sie diese Parameter nicht angeben, werden Informationen zu allen Artikeln einer Veröffentlichung oder des Verlegers zurückgegeben.

  2. Führen Sie sp_helpmergearticlecolumn aus, damit die Tabellenartikel alle in der Basistabelle verfügbaren Spalten auflisten.

So ändern Sie die Eigenschaften eines Artikels, der zu einer Mergeveröffentlichung gehört

  • Führen Sie sp_changemergearticle aus, und geben Sie dabei die zu ändernde Artikeleigenschaft im @property-Parameter und den neuen Wert dieser Eigenschaft im @value-Parameter an.

    HinweisHinweis

    Wenn die Änderung das Generieren eines neuen Snapshots erfordert, müssen Sie zudem den Wert 1 für @force_invalidate_snapshot angeben, und wenn die Änderung das erneute Initialisieren der Abonnenten erfordert, müssen Sie auch den Wert 1 für @force_reinit_subscription angeben. Weitere Informationen über Eigenschaften, die bei Änderung einen neuen Snapshot oder eine erneute Initialisierung erfordern, finden Sie unter Ändern von Veröffentlichungs- und Artikeleigenschaften.

Beispiel

In diesem Beispiel für eine Transaktionsreplikation werden die Eigenschaften des veröffentlichten Artikels zurückgegeben.

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

USE [AdventureWorks]
EXEC sp_helparticle
  @publication = @publication;
GO

In diesem Beispiel für eine Transaktionsreplikation werden die Schemaoptionen für den veröffentlichten Artikel geändert.

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

In diesem Beispiel für eine Mergereplikation werden die Eigenschaften des veröffentlichten Artikels zurückgegeben.

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

USE [AdventureWorks]
EXEC sp_helpmergearticle
  @publication = @publication;
GO

In diesem Mergereplikationsbeispiel werden die Konflikterkennungseinstellungen für einen veröffentlichten Artikel geändert.

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