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 oubcp 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_groups puis à 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_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 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_directory
de , 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
.