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.
Conventions 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.Remarque : 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.
Remarque : |
---|
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 |
Remarque : |
---|
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 |
|
5 décembre 2005 |
|