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.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

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 SP2.

     

    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.

    RemarqueRemarque
    La 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

    RemarqueRemarque
    Aprè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 [AdventureWorks2008R2]
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.