Procédure : afficher et modifier les propriétés des articles (programmation Transact-SQL de la réplication)

Les articles peuvent être modifiés et leurs propriétés retournées, par programme, à l'aide des procédures stockées de réplication. Les procédures stockées utilisées dépendent du type de publication auquel l'article appartient.

Pour afficher les propriétés d'un article appartenant à une publication transactionnelle ou de capture instantanée

  1. Exécutez sp_helparticle, en spécifiant le nom de la publication pour le paramètre @publication et le nom de l'article pour le paramètre @article. Si vous ne spécifiez pas @article, des informations sont retournées pour tous les articles de la publication.

  2. Exécutez sp_helparticlecolumns pour les articles de table pour répertorier toutes les colonnes disponibles dans la table de base.

Pour modifier les propriétés d'un article appartenant à une publication transactionnelle ou de capture instantanée

  • Exécutez sp_changearticle, en spécifiant la propriété d'article à modifier dans le paramètre @property et la nouvelle valeur de cette propriété dans le paramètre @value.

    Notes

    Si la modification nécessite la génération d'une nouvelle capture instantanée, vous devez également spécifier la valeur 1 pour @force_invalidate_snapshot et si la modification nécessite la réinitialisation des Abonnés, vous devez également spécifier la valeur 1 pour @force_reinit_subscription. Pour plus d'informations sur les propriétés qui, une fois modifiées, nécessitent une nouvelle capture instantanée ou réinitialisation, consultez Modification des propriétés des publications et des articles.

Pour afficher les propriétés d'un article appartenant à une publication de fusion

  1. Exécutez sp_helpmergearticle, en spécifiant le nom de la publication pour le paramètre @publication et le nom de l'article pour le paramètre @article. Si vous ne spécifiez pas ces paramètres, des informations sont retournées pour tous les articles d'une publication ou sur l'Abonné.

  2. Exécutez sp_helpmergearticlecolumn pour les articles de table pour répertorier toutes les colonnes disponibles dans la table de base.

Pour modifier les propriétés d'un article appartenant à une publication de fusion

  • Exécutez sp_changemergearticle, en spécifiant la propriété d'article à modifier dans le paramètre @property et la nouvelle valeur de cette propriété dans le paramètre @value.

    Notes

    Si la modification nécessite la génération d'une nouvelle capture instantanée, vous devez également spécifier la valeur 1 pour @force_invalidate_snapshot et si la modification nécessite la réinitialisation des Abonnés, vous devez également spécifier la valeur 1 pour @force_reinit_subscription. Pour plus d'informations sur les propriétés qui, une fois modifiées, nécessitent une nouvelle capture instantanée ou réinitialisation, consultez Modification des propriétés des publications et des articles.

Exemple

Cet exemple de réplication transactionnelle retourne les propriétés de l'article publié.

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

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

Cet exemple de réplication transactionnelle modifie les options de schéma pour l'article publié.

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

Cet exemple de réplication de fusion retourne les propriétés de l'article publié.

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

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

Cet exemple de réplication de fusion modifie les paramètres de détection de conflit pour un article publié.

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