sp_changearticle (Transact-SQL)

Mis à jour : 14 avril 2006

Modifie les propriétés d'un article dans une publication transactionnelle ou de capture instantanée. 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_changearticle [ [@publication= ] 'publication' ]
    [ , [ @article= ] 'article' ]
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

Arguments

  • [ @publication=] 'publication'
    Nom de la publication qui contient l'article. L'argument publication est de type sysname, avec NULL comme valeur par défaut.
  • [ @article=] 'article'
    Nom de l'article dont la propriété doit être modifiée. article est de type sysname, avec NULL comme valeur par défaut.
  • [ @property=] 'property'
    Propriété de l'article à modifier. property est de type nvarchar(100).
  • [ @value=] 'value'
    Nouvelle valeur de la propriété d'article. value est de type nvarchar(255).

    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 n'invalident pas la capture instantanée. Si la procédure stockée détecte que la modification requiert une nouvelle capture instantanée, une erreur est générée et aucune modification n'est effectuée.

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

    Pour plus d'informations sur les propriétés qui, lorsqu'elles sont modifiées, nécessitent la génération d'une nouvelle capture instantanée, consultez la section Remarques.

  • [ **@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 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 survient et aucune modification n'est effectuée.

    1 indique que les modifications apportées à l'article entraînent la réinitialisation des abonnements existants et autorise la réinitialisation des abonnements.

    Pour plus d'informations sur les propriétés qui, lorsqu'elles sont modifiées, nécessitent la réinitialisation de tous les abonnements existants, consultez la section Remarques.

  • [ @publisher= ] 'publisher'
    Spécifie un serveur de publication non-SQL Server. publisher est de type sysname. Sa valeur par défaut est NULL.

    ms175980.note(fr-fr,SQL.90).gifRemarque :
    publisher ne doit pas être utilisé lors de la modification des propriétés d'article sur un serveur de publication SQL Server.

Notes

sp_changearticle est utilisé dans la capture instantanée et dans la réplication transactionnelle.

Lorsqu'un article appartient à une publication qui prend en charge la réplication transactionnelle d'égal-à-égal, vous ne pouvez modifier que les propriétés description, ins_cmd, upd_cmd et del_cmd.

Le changement de l'une quelconque des propriétés ci-dessous nécessite la génération d'une nouvelle capture instantanée, et vous devez spécifier une valeur de 1 pour le paramètre force_invalidate_snapshot :

  • del_cmd
  • dest_table
  • destination_owner
  • ins_cmd
  • pre_creation_cmd
  • schema_options
  • upd_cmd

La modification des propriétés suivantes nécessite la réinitialisation des abonnements existants, et vous devez spécifier la valeur 1 pour le paramètre force_reinit_subscription.

  • del_cmd
  • dest_table
  • destination_owner
  • filter
  • ins_cmd
  • status
  • upd_cmd

Dans une publication existante, vous pouvez utiliser sp_changearticle pour modifier un article sans devoir supprimer et recréer la publication entière.

ms175980.note(fr-fr,SQL.90).gifRemarque :
Lors de la modification de la valeur de schema_option, 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_changearticle, les paramètres de bits 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_helparticle.

Options de schéma valides

Le tableau suivant décrit les valeurs autorisées de schema_option en fonction du type de réplication (dans la partie supérieure) et du type d'article (dans la première colonne).

Type de l'article Type de réplication  

 

Transactionnelle

Capture instantanée

logbased

Toutes les options

Toutes les options sauf 0x02

logbased manualfilter

Toutes les options

Toutes les options sauf 0x02

logbased manualview

Toutes les options

Toutes les options sauf 0x02

indexed view logbased

Toutes les options

Toutes les options sauf 0x02

indexed view logbased manualfilter

Toutes les options

Toutes les options sauf 0x02

indexed view logbased manualview

Toutes les options

Toutes les options sauf 0x02

indexed view logbase manualboth

Toutes les options

Toutes les options sauf 0x02

proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 et 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 et 0x80000000

serialized proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 et 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 et 0x80000000

proc schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 et 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 et 0x80000000

view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 et 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 et 0x80000000

func schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 et 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 et 0x80000000

indexed view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 et 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 et 0x80000000

ms175980.note(fr-fr,SQL.90).gifRemarque :
Dans le cas des publications avec mise à jour en attente, la valeur 0x80 de schema_option doit être activée. Les valeurs schema_option prises en charge pour les publications non SQL Server sont les suivantes : 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000 et 0x4000.

Autorisations

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

Valeurs des codes renvoyés

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

Exemple

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

Voir aussi

Référence

sp_addarticle (Transact-SQL)
sp_articlecolumn (Transact-SQL)
sp_droparticle (Transact-SQL)
sp_helparticle (Transact-SQL)
sp_helparticlecolumns (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 :
  • Les valeurs manquantes pour la propriété type ont été ajoutées.
  • 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é :
  • Des éclaircissements ont été fournis pour la description de la propriété type.
  • La taille du paramètre property a été corrigée.