Partager via


sp_changemergepublication (Transact-SQL)

S'applique à : SQL Server

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.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_changemergepublication
    [ @publication = ] N'publication'
    [ , [ @property = ] N'property' ]
    [ , [ @value = ] N'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

Arguments

[ @publication = ] N’publication'

Nom de la publication. @publication est sysname, sans valeur par défaut.

[ @property = ] N’property'

Propriété à modifier pour la publication donnée. @property est sysname et peut être l’une des valeurs répertoriées dans la table qui suit.

[ @value = ] N’value'

Nouvelle valeur de la propriété spécifiée. @value est nvarchar(255), avec la valeur par défaut NULL.

, et peut être l’une des valeurs répertoriées dans la table qui suit.

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é. C’est le paramétrage par défaut.
false Les données d’une ancienne partition sont laissées sur l’Abonné, où les modifications apportées à ces données sur le serveur de publication ne sont pas répliquées sur cet 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 ne sont pas autorisés pour la publication donnée.
allow_push true Les abonnements par envoi de données (push) sont autorisés pour la publication concernée.
false Les abonnements Push ne sont pas autorisés pour la publication donnée.
allow_subscriber_initiated_snapshot true L'Abonné peut initier le processus d'instantané.
false L’abonné ne peut pas lancer le processus d’instantané.
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 s’abonnent à cette 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 autre partenaire de synchronisation de se synchroniser avec ce 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 l'instantané.
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 L'instantané se trouvant dans un dossier d'instantané de remplacement est compressé au format CAB. L’instantané dans le dossier d’instantanés par défaut ne peut pas être compressé. La modification de cette propriété requiert un nouvel instantané.
false Par défaut, l’instantané n’est pas compressé. La modification de cette propriété requiert un nouvel instantané.
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. Non pris en charge pour les abonnés SQL Server Compact.
both Les enregistrements en conflit sont stockés dans le serveur de publication et l'Abonné.
conflict_retention Int qui spécifie la période de rétention, en jours, pour laquelle les conflits sont conservés. La définition conflict_retention signifie qu’aucun 0 nettoyage de conflit n’est nécessaire.
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 d'instantané vers un Abonné. Les fichiers de synchronisation de la composition sont placés dans le C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp répertoire.
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 d'instantané de la publication.
ftp_login Nom d’utilisateur utilisé pour se connecter 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 pour le serveur de distribution. Indique le numéro de port TCP du site FTP où sont stockés les fichiers d'instantané de la publication.
ftp_subdirectory Indique l'emplacement où sont créés les fichiers d'instantanés si la publication prend en charge la propagation d'instantanés par FTP.
generation_leveling_threshold int Spécifie 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é.
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 un nouvel instantané.
false La synchronisation n’est pas optimisée et les partitions envoyées aux Abonnés sont vérifiées lorsque les données changent dans une partition. La modification de cette propriété requiert un nouvel instantané.
max_concurrent_merge Int qui représente le nombre maximal de processus de fusion simultanés qui peuvent être exécutés sur une publication. Si 0, il n’y a pas de limite. Si plus de ce nombre de processus de fusion sont planifiés pour s’exécuter en même temps, les travaux excédentaires sont placés dans une file d’attente jusqu’à ce qu’un processus currentlmerge se termine.
max_concurrent_dynamic_snapshots Int qui représente le nombre maximal de sessions d’instantanés pour générer un instantané de données filtré qui peut s’exécuter simultanément sur une publication de fusion qui utilise des filtres de lignes paramétrables. Si 0, il n’y a pas de limite. Si ce nombre est supérieur au nombre planifié de processus d'instantané à 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 un emplacement de .sql fichier. L'Agent de distribution ou de fusion exécute le script de post-instantané 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 un nouvel instantané.
pre_snapshot_script Spécifie un pointeur vers un emplacement de .sql fichier. L'Agent de fusion exécute le script de pré-instantané avant tous les scripts d'objets répliqués, lors de l'application d'un instantané chez un abonné. La modification de cette propriété requiert un nouvel instantané.
publication_compatibility_level 100RTM SQL Server 2008 (10.0.x)
90RTM SQL Server 2005 (9.x)
publish_to_activedirectory true Ce paramètre est déconseillé et est maintenu 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) qui sont exécutées sur le serveur de publication sont répliquées.
0 Les instructions DDL ne sont pas répliquées.
retention Int qui représente le nombre d’unités retention_period_unit pour lesquelles enregistrer les modifications pour la composition donnée. Si l’abonnement n’est pas synchronisé pendant la période de rétention et que les modifications en attente reçues ont été supprimées par une opération de nettoyage sur le serveur de distribution, l’abonnement expire et doit être réinitialisé. La période de rétention maximale autorisée correspond au nombre de jours entre la date actuelle et le 31 décembre 9999.

Remarque : La période de rétention des publications de fusion a une période de grâce de 24 heures pour prendre en charge les Abonné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 d'instantané sont stockés dans le dossier d'instantané par défaut.
false Les fichiers d’instantané sont stockés dans l’autre emplacement spécifié par alt_snapshot_folder. Cette combinaison indique que les fichiers d'instantané sont stockés dans les emplacements par défaut et de remplacement.
snapshot_ready true L'instantané de la publication est disponible.
false L’instantané 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 l'instantané initial.
character

ou bcp character
La sortie du programme de copie en bloc en mode caractère de toutes les tables est utilisée pour l’instantané initial, ce qui est requis pour tous les abonnés non-SQL Server.
use_partition_groups

Remarque : Après avoir utilisé des groupes de partitions, si vous souhaitez revenir à l’utilisation setupbelongs, et défini use_partition_groups=false dans changemergearticle, cela peut ne pas être correctement reflété après la prise d’un instantané. Les déclencheurs générés par l’instantané sont conformes aux groupes de partitions.

La solution de contournement à ce scénario consiste à définir l’état sur Inactif, à modifier, use_partition_groupspuis à définir l’état sur Actif.
true La publication utilise des partitions précalculées.
false La publication n’utilise pas de partitions précomputées.
validate_subscriber_info Répertorie les fonctions utilisées pour extraire des informations d'Abonné. Ensuite, valide les critères de filtrage dynamique utilisés pour l’Abonné afin de vérifier que les informations sont partitionnée de manière cohérente.
web_synchronization_url Valeur par défaut de l'URL Internet utilisée pour la synchronisation Web.
NULL (valeur par défaut) Retourne la liste des valeurs prises en charge pour @property.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Reconnaît que l’action effectuée par cette procédure stockée peut invalider un instantané existant. @force_invalidate_snapshot est bit, avec la valeur par défaut 0.

  • 0 spécifie que la modification de la publication n’invalide pas l’instantané. Si la procédure stockée détecte que la modification requiert un nouvel instantané, une erreur se produit et aucune modification n'est effectuée.

  • 1 spécifie que la modification de la publication peut invalider l’instantané. S’il existe des abonnements existants qui nécessitent un nouvel instantané, donne l’autorisation à l’instantané existant d’être marqué comme obsolète et pour qu’un nouvel instantané soit généré.

Consultez la section Remarques pour les propriétés qui, en cas de modification, nécessitent la génération d’un nouvel instantané.

[ @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. @force_reinit_subscription est bit, avec la valeur par défaut 0.

  • 0 spécifie que la modification de la publication ne nécessite pas que les abonnements soient réinitialisés. Si la procédure stockée détecte que la modification nécessite la réinitialisation des abonnements existants, une erreur se produit et aucune modification n’est apportée.

  • 1 signifie que les modifications apportées à la publication réinitialisent les abonnements existants et autorisent la réinitialisation de l’abonnement.

Consultez la section Remarques pour les propriétés qui, en cas de modification, nécessitent que tous les abonnements existants soient réinitialisés.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

sp_changemergepublication est utilisé dans la réplication de fusion.

La modification des propriétés suivantes nécessite qu’un nouvel instantané soit généré. Vous devez spécifier la valeur du 1 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_level80SP3 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 la valeur du 1 paramètre @force_reinit_subscription .

  • dynamic_filters
  • validate_subscriber_info

Pour répertorier les objets de publication dans Active Directory à l’aide publish_to_active_directoryde , l’objet SQL Server doit déjà être créé dans Active Directory.

Exemples

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

-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

autorisations

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