sp_changemergepublication (Transact-SQL)
Modifie les propriétés d'une publication de fusion. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données de publication.
Syntaxe
sp_changemergepublication [ @publication= ] 'publication'
[ , [ @property= ] 'property' ]
[ , [ @value= ] 'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
Arguments
[ @publication=\] 'publication'
Nom de la publication. publication est de type sysname, sans valeur par défaut.[ @property=\] 'property'
Propriété à modifier pour la publication donnée. L'argument property est de type sysname, et peut prendre l'une des valeurs répertoriées dans le tableau suivant.[ @value=\] 'value'
Nouvelle valeur de la propriété spécifiée. value est de type nvarchar(255), et peut prendre l'une des valeurs répertoriées dans le tableau suivant.Le tableau ci-dessous décrit les propriétés modifiables de la publication ainsi que les limites liées aux valeurs de ces propriétés.
Propriété
Valeur
Description
allow_anonymous
true
Les abonnements anonymes sont autorisés.
false
Les abonnements anonymes ne sont pas autorisés.
allow_partition_realignment
true
Les opérations de suppression sont envoyées à l'Abonné pour refléter les résultats d'une modification de partition en supprimant des données qui ne font plus partie de la partition de l'Abonné. Il s'agit du comportement par défaut.
false
Les données d'une ancienne partition demeurent sur l'Abonné : les modifications apportées à ces données sur le serveur de publication ne sont pas répliquées sur l'Abonné. À la place, les modifications apportées à l'Abonné sont répliquées vers le serveur de publication. Cela permet de conserver dans un abonnement des données issues d'une ancienne partition afin qu'elles soient accessibles à des fins d'historique.
allow_pull
true
Les abonnements par extraction de données (pull) sont autorisés pour la publication concernée.
false
Les abonnements par extraction de données (pull) sont pas autorisés pour la publication concernée.
allow_push
true
Les abonnements par envoi de données (push) sont autorisés pour la publication concernée.
false
Les abonnements par envoi de données (push) ne sont pas autorisés pour la publication concernée.
allow_subscriber_initiated_snapshot
true
L'Abonné peut initier le processus de capture instantanée.
false
L'Abonné ne peut pas initier le processus de capture instantanée.
allow_subscription_copy
true
Vous pouvez copier les bases de données d'abonnement qui sont abonnées à la publication.
false
Vous ne pouvez pas copier les bases de données d'abonnement qui sont abonnées à la publication.
allow_synctoalternate
true
Permet à un serveur partenaire de synchronisation différent de se synchroniser avec le serveur de publication.
false
Ne permet pas à un serveur partenaire de synchronisation différent de se synchroniser avec le serveur de publication.
allow_web_synchronization
true
Les abonnements peuvent être synchronisés via HTTPS.
false
Les abonnements ne peuvent pas être synchronisés via HTTPS.
alt_snapshot_folder
Spécifie l'emplacement de l'autre dossier de la capture instantanée.
automatic_reinitialization_policy
1
Les modifications sont téléchargées depuis l'Abonné avant que l'abonnement ne soit réinitialisé.
0
L'abonnement est réinitialisé sans téléchargement préalable des modifications.
centralized_conflicts
true
Tous les enregistrements en conflit sont stockés sur le serveur de publication. Vous devez réinitialiser les abonnés existants si vous modifiez cette propriété.
false
Les enregistrements en conflit sont stockés sur le serveur qui est sorti perdant de la résolution du conflit. Vous devez réinitialiser les abonnés existants si vous modifiez cette propriété.
compress_snapshot
true
La capture instantanée se trouvant dans un dossier de capture instantanée de remplacement est compressée au format CAB. La capture instantanée se trouvant dans le dossier de capture instantanée par défaut ne peut pas être compressée. La modification de cette propriété requiert une nouvelle capture instantanée.
false
La capture instantanée n'est pas compressée par défaut. La modification de cette propriété requiert une nouvelle capture instantanée.
conflict_logging
publisher
Les enregistrements en conflit sont stockés sur le serveur de publication.
subscriber
Les enregistrements en conflit sont stockés dans l'Abonné à l'origine du conflit. Propriété non prise en charge pour les Abonnés SQL Server Compact 3.5 SP1.
both
Les enregistrements en conflit sont stockés dans le serveur de publication et l'Abonné.
conflict_retention
int qui indique la période de rétention, en jours, pendant laquelle les conflits sont conservés. Si conflict_retention a pour valeur 0, aucun nettoyage de conflit n'est requis.
description
Description de la publication.
dynamic_filters
true
La publication est filtrée sur une clause dynamique.
false
La publication n'est pas filtrée dynamiquement.
enabled_for_internet
true
La publication est activée pour Internet. Le protocole FTP (File Transfer Protocol) peut être utilisé pour le transfert des fichiers de capture instantanée vers un Abonné. Les fichiers de synchronisation de la publication sont placés dans le répertoire C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp.
false
La publication n'est pas activée pour Internet.
ftp_address
Adresse réseau du service FTP du serveur de distribution. Indique l'emplacement de stockage des fichiers de capture instantanée de la publication.
ftp_login
Nom d'utilisateur utilisé pour la connexion au service FTP.
ftp_password
Mot de passe utilisateur utilisé pour la connexion au service FTP.
ftp_port
Numéro de port du service FTP du serveur de distribution. Indique le numéro de port TCP du site FTP où sont stockés les fichiers de capture instantanée de la publication.
ftp_subdirectory
Indique l'emplacement où sont créés les fichiers de captures instantanées si la publication prend en charge la propagation de captures instantanées par FTP.
generation_leveling_threshold
int
Indique le nombre de modifications contenues dans une génération. Une génération est une collection de modifications remises à un serveur de publication ou à un Abonné. Pour plus d'informations, consultez Comment la réplication de fusion effectue le suivi et l'énumération des modifications.
keep_partition_changes
true
La synchronisation est optimisée et seuls les abonnés qui détiennent des lignes dans les partitions modifiées sont concernés. La modification de cette propriété requiert une nouvelle capture instantanée.
false
La synchronisation n'est pas optimisée et les partitions envoyées à tous les abonnés seront vérifiées lors de la modification de leurs données. La modification de cette propriété requiert une nouvelle capture instantanée.
max_concurrent_merge
Ce int représente le nombre maximal de processus de fusion pouvant être exécutés simultanément sur une publication. Si ce nombre est 0, il n'y a pas de limite. Si ce nombre est supérieur au nombre planifié de processus de fusion à exécuter simultanément, les travaux en trop sont placés dans une file d'attente jusqu'à ce qu'un processus de fusion en cours d'exécution s'achève.
max_concurrent_dynamic_snapshots
Ce int représente le nombre maximal de sessions de capture instantanée pouvant être exécutées simultanément sur une publication de fusion qui utilise des filtres de lignes paramétrables, afin de générer une capture instantanée de données filtrées. Si la valeur est 0, aucune limite n'est spécifiée. Si ce nombre est supérieur au nombre planifié de processus de capture instantanée à exécuter simultanément, les travaux en trop sont placés dans une file d'attente jusqu'à ce qu'un processus de fusion en cours d'exécution s'achève.
post_snapshot_script
Spécifie un pointeur vers l'emplacement d'un fichier .sql. L'Agent de distribution ou de fusion exécute le script de post-capture instantanée après que tous les autres scripts d'objets et données répliqués ont été appliqués lors d'une synchronisation initiale. La modification de cette propriété requiert une nouvelle capture instantanée.
pre_snapshot_script
Spécifie un pointeur vers l'emplacement d'un fichier .sql. L'Agent de fusion exécute le script de précapture instantanée avant tous les scripts d'objets répliqués, lors de l'application d'une capture instantanée chez un abonné. La modification de cette propriété requiert une nouvelle capture instantanée.
publication_compatibility_level
100RTM
SQL Server 2008
90RTM
SQL Server 2005
80SP3
SQL Server 2000 SP3
80SP2
SQL Server 2000 SP2
80SP1
SQL Server 2000 SP2
80RTM
SQL Server 2000
70 SP4
SQL Server 7.0 SP4
70SP3
SQL Server 7.0 SP3
70SP2
SQL Server 7.0 SP2
70SP1
SQL Server 7.0 SP1
70RTM
SQL Server 7.0
publish_to_activedirectory
true
Ce paramètre a été désapprouvé et n'est pris en charge que pour la compatibilité descendante des scripts. Vous ne pouvez plus ajouter d'informations de publication dans Active Directory.
false
Supprime les informations de publication d'Active Directory.
replicate_ddl
1
Les instructions DDL (Data Definition Language) exécutées sur le serveur de publication sont répliquées.
0
Les instructions DDL ne sont pas répliquées.
retention
Ce int représente le nombre d'unités retention_period_unit pour lesquelles doivent être enregistrées les modifications relatives à la publication donnée. L'abonnement expire et doit être réinitialisé s'il n'est pas synchronisé pendant la période de rétention et que les modifications en attente qu'il aurait dû recevoir ont été supprimées par une opération de nettoyage sur le serveur de distribution. La période de rétention maximale autorisée correspond au nombre de jours entre la date actuelle et le 31 décembre 9999.
RemarqueLa période de rétention des publications de fusion dispose d'un délai de grâce de 24 heures pour prendre en charge les Abonnés situés dans différents fuseaux horaires.retention_period_unit
day
La période de rétention est spécifiée en jours.
week
La période de rétention est spécifiée en semaines.
month
La période de rétention est spécifiée en mois.
year
La période de rétention est spécifiée en années.
snapshot_in_defaultfolder
true
Les fichiers de capture instantanée sont stockés dans le dossier de capture instantanée par défaut.
false
Les fichiers de capture instantanée sont stockés dans le dossier de remplacement spécifié par alt_snapshot_folder. Cette combinaison indique que les fichiers de capture instantanée sont stockés dans les emplacements par défaut et de remplacement.
snapshot_ready
true
La capture instantanée de la publication est disponible.
false
La capture instantanée de la publication n'est pas disponible.
status
active
La publication est dans un état actif.
inactive
La publication est dans un état inactif.
sync_mode
native ou
bcp native
La sortie programme de la copie en bloc en mode natif de toutes les tables est utilisée pour la capture instantanée initiale.
character
ou bcp character
La sortie programme de la copie en bloc en mode caractère de toutes les tables est utilisée pour la capture instantanée initiale, ce qui est requis pour tous les Abonnés non SQL Server.
use_partition_groups
RemarqueAprès avoir utilisé partition_groups, si vous revenez à l'utilisation de setupbelongs, et définissez use_partition_groups=false dans changemergearticle, il est possible que ce changement ne soit pas reflété correctement après la prise d'une capture instantanée. Les déclencheurs générés par la capture instantanée sont conformes avec les groupes de partition. La solution de contournement à ce scénario est de définir le statut à Inactif, de modifier use_partition_groups, puis définir le statut à Actif.true
La publication utilise des partitions précalculées.
false
La publication n'utilise pas de partitions précalculées.
validate_subscriber_info
Répertorie les fonctions utilisées pour extraire des informations d'Abonné. Puis, valide les critères de filtrage dynamiques utilisés pour l'Abonné pour vérifier que les informations sont partitionnées régulièrement.
web_synchronization_url
Valeur par défaut de l'URL Internet utilisée pour la synchronisation Web.
NULL (valeur par défaut)
Renvoie la liste des valeurs prises en charge pour property.
[ @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 de type bit, avec 0 comme valeur par défaut.0 indique que les modifications apportées à la publication n'entraînent pas l'invalidation de la capture instantanée. Si la procédure stockée détecte que la modification requiert une nouvelle capture instantanée, une erreur se produit et aucune modification n'est effectuée.
1 indique que les modifications apportées à la publication peuvent entraîner l'invalidation de la capture instantanée. Si certains abonnements existants nécessitent une nouvelle capture instantanée, cette valeur autorise le marquage de la capture instantanée existante comme obsolète, et la génération d'une nouvelle capture instantanée.
Consultez la section Remarques pour connaître les propriétés dont la modification nécessite la génération d'une nouvelle capture instantanée.
[ @force\_reinit\_subscription = ] force_reinit_subscription
Signale que l'action entreprise par cette procédure stockée peut nécessiter la réinitialisation des abonnements existants. force_reinit_subscription est de type bit, avec 0 comme valeur par défaut.0 indique que les modifications apportées à la publication n'imposent pas une réinitialisation des abonnements. 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 à la publication entraînent la réinitialisation des abonnements existants et autorisent la réinitialisation des abonnements.
Voir la section Remarques pour connaître les propriétés dont la modification requiert la réinitialisation de tous les abonnements existants.
Valeurs des codes de retour
0 (succès) ou 1 (échec)
Notes
sp_changemergepublication est utilisé dans la réplication de fusion.
La modification des propriétés suivantes requiert qu'une nouvelle capture instantanée soit générée. Vous devez spécifier une valeur de 1 pour le paramètre force_invalidate_snapshot.
alt_snapshot_folder
compress_snapshot
dynamic_filters
ftp_address
ftp_login
ftp_password
ftp_port
ftp_subdirectory
post_snapshot_script
publication_compatibility_level (à 80SP3 seulement)
pre_snapshot_script
snapshot_in_defaultfolder
sync_mode
use_partition_groups
Vous devez réinitialiser les abonnements existants pour modifier les propriétés suivantes. Vous devez spécifier une valeur de 1 pour le paramètre force_reinit_subscription.
dynamic_filters
validate_subscriber_info
Les objets de publication figurant dans le répertoire Active Directory ne peuvent être affichés à l'aide du paramètre publish_to_active_directory que si l'objet SQL Server est déjà créé dans le répertoire.
Exemple
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO
Autorisations
Seuls les membres appartenant au rôle serveur fixe sysadmin ou au rôle de base de données fixe db_owner peuvent exécuter sp_changemergepublication.
Voir aussi