sp_changemergearticle (Transact-SQL)

Mis à jour : 14 avril 2006

Modifie les propriétés d'un article de fusion. Cette procédure stockée est exécutée au niveau du serveur de publication dans la base de données de publication.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_changemergearticle [ @publication = ] 'publication'
        , [ @article = ] 'article'
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

Arguments

  • [ **@publication=**\] 'publication'
    Nom de la publication dans laquelle existe l'article. L'argument publication est de type sysname et n'a pas de valeur par défaut.
  • [ **@article=**\] 'article'
    Nom de l'article à modifier. article est de type sysname, sans valeur par défaut.
  • [ **@property=**\] 'property'
    Propriété à modifier pour l'article et la publication donnés. L'argument property est de type nvarchar(30), et peut prendre l'une des valeurs répertoriées dans le tableau.
  • [ **@value=**\] 'value'
    Nouvelle valeur de la propriété spécifiée. L'argument value est de type nvarchar(1000), et peut prendre l'une des valeurs répertoriées dans le tableau.

    Le tableau ci-dessous décrit les propriétés des articles et les valeurs de ces propriétés.

    Propriété

  • [ @force\_invalidate\_snapshot = ] force_invalidate_snapshot
    Signale que l'action entreprise par cette procédure stockée peut invalider une capture instantanée existante. force_invalidate_snapshot est du type bit, avec 0 comme valeur par défaut.

    0 indique que les modifications apportées à l'article de fusion ne génèrent pas l'invalidation de la capture instantanée. Si la procédure stockée détecte que la modification nécessite une nouvelle capture instantanée, un message d'erreur est généré et aucune modification n'est effectuée.

    1 indique que les modifications apportées à l'article de fusion peuvent entraîner l'invalidation de la capture instantanée. Par ailleurs, s'il existe déjà des abonnements nécessitant une nouvelle capture instantanée, cette valeur autorise à marquer la capture instantanée existante comme obsolète et à en générer une nouvelle.

    Voir la section Notes pour connaître les propriétés qui, lorsque elles sont modifiées, nécessitent la génération d'une nouvelle capture instantanée.

  • [ @force\_reinit\_subscription = ] force_reinit_subscription
    Confirme que l'action entreprise par cette procédure stockée peut nécessiter la réinitialisation des abonnements existants. L'argument force_reinit_subscription est de type bit, avec 0 comme valeur par défaut.

    0 indique que les modifications apportées à l'article de fusion n'entraînent pas la réinitialisation de l'abonnement. Si la procédure stockée détecte que la modification requiert la réinitialisation des abonnements existants, une erreur se produit et aucune modification n'est effectuée.

    1 indique que les modifications apportées à l'article de fusion entraînent la réinitialisation des abonnements existants et autorise cette opération à se réaliser.

    Voir la section Notes pour connaître les propriétés qui, lorsqu'elles sont modifiées, nécessitent la réinitialisation de tous les abonnements existants.

Notes

La procédure sp_changemergearticle est utilisée dans la réplication de fusion.

Étant donné que la procédure sp_changemergearticle est utilisée pour modifier des propriétés d'article initialement spécifiées à l'aide de sp_addmergearticle, consultez sp_addmergearticle pour plus d'informations sur ces propriétés.

Les modifications apportées aux propriétés suivantes nécessitent la génération d'une nouvelle capture instantanée, et vous devez attribuer la valeur 1 au paramètre force_invalidate_snapshot :

  • check_permissions
  • column_tracking
  • destination_owner
  • pre_creation_cmd
  • schema_options
  • subset_filterclause

Les modifications apportées aux propriétés suivantes nécessitent la réinitialisation des abonnements existants, et vous devez attribuer la valeur 1 au paramètre force_reinit_subscription :

  • check_permissions
  • column_tracking
  • destination_owner
  • subscriber_upload_options
  • subset_filterclause

Si vous spécifiez la valeur 3 pour partition_options, les métadonnées sont nettoyées à chaque exécution de l'Agent de fusion et la capture instantanée partitionnée expire plus rapidement. Lorsque vous utilisez cette option, pensez à activer la capture instantanée partitionnée demandée par l'abonné. Pour plus d'informations, consultez Captures instantanées des publications de fusion avec des filtres paramétrés.

Lorsque vous définissez la propriété column_tracking, si la table est déjà publiée dans d'autres publications de fusion, la valeur du suivi des colonnes doit être la même que celle qui est utilisée par les articles existants basés sur cette table. Ce paramètre concerne uniquement les articles de table.

Si plusieurs publications publient des articles basés sur la même table sous-jacente, la modification de la propriété delete_tracking ou de la propriété compensate_for_errors pour un article entraîne le même changement sur les autres articles basés sur cette même table.

Si la connexion d'accès/le compte d'utilisateur du serveur de publication utilisé par le processus de fusion ne possède pas les autorisations de table appropriées, les modifications non valides sont enregistrées en tant que conflits.

Lorsque la valeur de schema_option est modifiée, le système n'effectue pas de mise à jour au niveau du bit. Cela signifie que lorsque vous définissez schema_option à l'aide de sp_changemergearticle, les paramètres de bit existants peuvent être désactivés. Pour conserver les paramètres existants, vous devez effectuer & (opération AND au niveau du bit) entre la valeur que vous définissez et la valeur actuelle de schema_option, qui peut être déterminée en exécutant sp_helpmergearticle.

Tableau des options de schéma valides

Le tableau suivant présente les valeurs autorisées pour schema_optionen fonction du type de l'article.

Type de l'article Valeurs de l'option de schéma

func schema only

0x01 et 0x2000

indexed view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 et 0x200000

proc schema only

0x01 et 0x2000

table

Toutes les options.

view schema only

0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000 et 0x200000

Autorisations

Seuls les membres appartenant au rôle de serveur fixe sysadmin ou au rôle de base de données fixe db_owner peuvent exécuter sp_changemergearticle.

Valeurs des codes retournés

0 (succès) ou 1 (échec)

Exemple

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

Voir aussi

Référence

sp_addmergearticle (Transact-SQL)
sp_dropmergearticle (Transact-SQL)
sp_helpmergearticle (Transact-SQL)
Procédures stockées de réplication (Transact-SQL)

Autres ressources

How to: View and Modify Article Properties (Replication Transact-SQL Programming)
Modification des propriétés des publications et des articles

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

14 avril 2006

Contenu modifié :
  • Mise à jour de la description de la valeur 0x20000000 de la propriété schema_option.

5 décembre 2005

Nouveau contenu :
  • Des informations ont été fournies sur les restrictions supplémentaires qui s'appliquent à la définition de l'option 0x20 pour le paramètre schema_option.
Contenu modifié :
  • Mise à jour des informations concernant la valeur par défaut des options de schéma pour les articles de tables.