sp_addmergepublication (Transact-SQL)

Crée une nouvelle publication de fusion. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données publiée.

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

Syntaxe

sp_addmergepublication [ @publication = ] 'publication' 
    [ , [ @description = ] 'description' 
    [ , [ @retention = ] retention ] 
    [ , [ @sync_mode = ] 'sync_mode' ] 
    [ , [ @allow_push = ] 'allow_push' ] 
    [ , [ @allow_pull = ] 'allow_pull' ] 
    [ , [ @allow_anonymous = ] 'allow_anonymous' ] 
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ] 
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
    [ , [ @dynamic_filters = ] 'dynamic_filters' ] 
    [ , [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder' ] 
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
    [ , [ @pre_snapshot_script = ] 'pre_snapshot_script' ] 
    [ , [ @post_snapshot_script = ] 'post_snapshot_script' ] 
    [ , [ @compress_snapshot = ] 'compress_snapshot' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_subdirectory = ] 'ftp_subdirectory' ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ] 
    [ , [ @conflict_retention = ] conflict_retention ] 
    [ , [ @keep_partition_changes = ] 'keep_partition_changes' ] 
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ] 
    [ , [ @allow_synctoalternate = ] 'allow_synctoalternate' ] 
    [ , [ @validate_subscriber_info = ] 'validate_subscriber_info' ] 
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ] 
    [ , [ @max_concurrent_merge = ] maximum_concurrent_merge ] 
    [ , [ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots ]
    [ , [ @use_partition_groups = ] 'use_partition_groups' ]
    [ , [ @publication_compatibility_level = ] 'backward_comp_level' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot' ] 
    [ , [ @allow_web_synchronization = ] 'allow_web_synchronization' ] 
    [ , [ @web_synchronization_url = ] 'web_synchronization_url' ]
    [ , [ @allow_partition_realignment = ] 'allow_partition_realignment' ]
    [ , [ @retention_period_unit = ] 'retention_period_unit' ]
    [ , [ @generation_leveling_threshold = ] generation_leveling_threshold ]
    [ , [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy ]
    [ , [ @conflict_logging = ] 'conflict_logging' ]

Arguments

  • [ @publication = ] 'publication'
    Nom de la publication de fusion à créer. L'argument publication est de type sysname et n'a pas de valeur par défaut. Il ne doit pas correspondre au mot clé ALL. Le nom de la publication doit être unique dans la base de données.

  • [ @description = ] 'description'
    Description de la publication. L'argument description est de type nvarchar(255), avec NULL comme valeur par défaut..

  • [ @retention = ] retention
    Période de rétention, en unités de période de rétention, pendant laquelle les modifications sont enregistrées pour la publication donnée. L'argument retention est de type int, avec la valeur 14 par défaut. Les unités de période de rétention sont définies par retention_period_unit. Si l'abonnement n'est pas synchronisé pendant la période de rétention et que les modifications en attente qu'il devait recevoir 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 maximum autorisable est le nombre de jours compris entre le 31 décembre 9999 et la date actuelle.

    Notes

    La période de rétention pour les publications de fusion bénéficie d'une période de grâce de 24 heures pour les besoins des abonnés se trouvant dans des fuseaux horaires différents. Si, par exemple, vous définissez une période de rétention d'un jour, la période de rétention réelle est de 48 heures.

  • [ @sync_mode = ] 'sync_mode'
    Mode de la synchronisation initiale des Abonnés à la publication. L'argument sync_mode est de type nvarchar(10), et peut prendre une des valeurs ci-dessous.

    Valeur

    Description

    native (par défaut)

    Produit une copie par bloc en mode natif de toutes les tables.

    character

    Produit une copie par bloc en mode caractère de toutes les tables. Nécessaire à la prise en charge d'Abonnés Microsoft SQL Server Compact 3.5 SP2 et non-SQL Server.

  • [ @allow_push = ] 'allow_push'
    Indique si des abonnements par émission de données peuvent être créés pour une publication donnée. L'argument allow_push est de type nvarchar(5), avec TRUE comme valeur par défaut. Cette valeur autorise des abonnements par émission de données pour cette publication.

  • [ @allow_pull = ] 'allow_pull'
    Indique si des abonnements par extraction peuvent être créés pour une publication donnée. L'argument allow_pull est de type nvarchar(5), avec TRUE comme valeur par défaut. Cette valeur autorise des abonnements par extraction pour cette publication. Vous devez spécifier la valeur True pour prendre en charge les abonnés SQL Server Compact 3.5 SP2.

  • [ @allow_anonymous = ] 'allow_anonymous'
    Indique si des abonnements anonymes peuvent être créés pour une publication donnée. L'argument allow_anonymous est de type nvarchar(5), avec TRUE comme valeur par défaut. Cette valeur autorise des abonnements anonymes pour cette publication. Pour prendre en charge les Abonnés SQL Server Compact 3.5 SP2, vous devez spécifier la valeur true.

  • [ @enabled_for_internet = ] 'enabled_for_internet'
    Indique si la publication est activée pour Internet et détermine si le protocole de transfert de fichiers (FTP) peut être utilisé pour le transfert des fichiers d'instantané à un Abonné. L'argument enabled_for_internet est de type nvarchar(5), avec FALSE comme valeur par défaut. Si la valeur est true, les fichiers de synchronisation de la publication sont placés dans le répertoire C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp. L'utilisateur doit créer le répertoire FTP. Si la valeur est false, la publication n'est pas activée pour l'accès Internet.

  • [ @centralized_conflicts =] 'centralized_conflicts'
    Ce paramètre est déconseillé et n'est pris en charge que pour des raisons de compatibilité descendante des scripts. Utilisez conflict_logging pour spécifier l'emplacement où se trouvent les enregistrements de conflits.

  • [ @dynamic_filters =] 'dynamic_filters'
    Active la publication de fusion pour utiliser les filtres de lignes paramétrables. L'argument dynamic_filters est de type nvarchar(5), avec FALSE comme valeur par défaut.

    Notes

    Vous ne devez pas spécifier vous-même ce paramètre mais autoriser SQL Server à déterminer automatiquement si les filtres de lignes paramétrables sont utilisés. Si vous spécifiez la valeur true pour dynamic_filters, vous devez définir un filtre de lignes paramétrable pour l'article. Pour plus d'informations, consultez Procédure : définir et modifier un filtre de lignes paramétrable pour un article de fusion (programmation Transact-SQL de la réplication).

  • [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
    Indique si les fichiers d'instantané sont stockés dans le dossier par défaut. L'argument snapshot_in_default_folder est de type nvarchar(5), avec TRUE comme valeur par défaut. Si la valeur est true, les fichiers d'instantané se trouvent dans le dossier par défaut. Si la valeur est false, les fichiers d'instantané sont stockés dans le dossier de remplacement spécifié par alternate_snapshot_folder. Les emplacements secondaires peuvent se trouver sur un autre serveur, un lecteur réseau ou un support amovible (tel qu'un CD-ROM ou des disques amovibles). Vous pouvez également enregistrer les fichiers d'instantané sur un site FTP, pour qu'ils soient récupérés ultérieurement par l'abonné. Notez que ce paramètre peut avoir la valeur true et néanmoins avoir un 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 secondaires.

  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    Spécifie l'emplacement du dossier secondaire de l'instantané. L'argument alternate_snapshot_folder est de type nvarchar(255), avec NULL comme valeur par défaut.

  • [ @pre_snapshot_script = ] 'pre_snapshot_script'
    Spécifie un pointeur vers l'emplacement d'un fichier .sql. L'argument pre_snapshot_script est de type nvarchar(255), avec NULL comme valeur par défaut. L'Agent de fusion exécute le script de pré-instantané avant tous les scripts d'objets répliqués, lors de l'application de l'instantané chez un abonné. Le script est exécuté dans le contexte de sécurité utilisé par l'Agent de fusion lors de la connexion à la base de données d'abonnement. Les scripts de pré-instantané ne sont pas exécutés sur les Abonnés SQL Server Compact 3.5 SP2.

  • [ @post_snapshot_script = ] 'post_snapshot_script'
    Spécifie un pointeur vers l'emplacement d'un fichier .sql. L'argument post_snapshot_script est de type nvarchar(255), avec NULL comme valeur par défaut. L'Agent 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. Le script est exécuté dans le contexte de sécurité utilisé par l'Agent de fusion lors de la connexion à la base de données d'abonnement. Les scripts de post-instantané ne sont pas exécutés sur les Abonnés SQL Server Compact 3.5 SP2.

  • [ @compress_snapshot = ] 'compress_snapshot'
    Indique que l'instantané écrit à l'emplacement @alt_snapshot_folder doit être compressée au format Microsoft CAB. L'argument compress_snapshot est de type nvarchar(5), avec FALSE comme valeur par défaut. La valeur false indique que l'instantané ne sera pas compressé et la valeur true qu'elle doit être compressée. Les fichiers d'instantané dépassant 2 Go ne peuvent pas être compressés. Les fichiers d'instantané compressés sont décompressés à l'emplacement d'exécution de l'Agent de fusion. Les abonnements par extraction de données sont généralement utilisés avec des instantanés compressés, afin que les fichiers soient décompressés chez l'abonné. L'instantané se trouvant dans le dossier par défaut ne peut pas être compressé. Pour prendre en charge les Abonnés SQL Server Compact 3.5 SP2, vous devez spécifier la valeur false.

  • [ @ftp_address = ] 'ftp_address'
    Adresse réseau du service FTP pour le serveur de distribution. L'argument ftp_address est de type sysname, avec NULL comme valeur par défaut. Indique l'emplacement à partir duquel l'Agent de fusion d'un abonné peut extraire les fichiers d'instantané de la publication. Étant donné que cette propriété est stockée pour chaque publication, chaque publication peut avoir sa propre valeur pour ftp_address. La publication doit prendre en charge la propagation des instantanés à l'aide du protocole FTP.

  • [ @ftp_port= ] ftp_port
    Numéro de port du service FTP du serveur de distribution. ftp_port est de type int, avec 21 comme valeur par défaut. Indique l'emplacement à partir duquel l'Agent de fusion d'un Abonné peut extraire les fichiers d'instantané de la publication. Étant donné que cette propriété est stockée pour chaque publication, chaque publication peut avoir sa propre valeur pour ftp_port.

  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    Indique l'emplacement à partir duquel l'Agent de fusion de l'abonné peut extraire les fichiers d'instantané si la publication prend en charge la propagation d'instantanés par FTP. L'argument ftp_subdirectory est de type nvarchar(255), avec NULL comme valeur par défaut. Étant donné que cette propriété est stockée pour chaque publication, chaque publication peut avoir sa propre valeur pour ftp_subdirctory ou, si une valeur NULL est spécifiée, elle peut n'être associée à aucun sous-répertoire.

    Lors de la prégénération d'instantanés pour les publications avec des filtres paramétrables, l'instantané de données pour chaque partition d'abonné doit se trouver dans son propre dossier. La structure de répertoire pour les instantanés prégénérés à l'aide de FTP doit répondre aux conditions suivantes :

    alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.

    Notes

    Les valeurs en italique ci-dessus dépendent des détails de la publication et de la partition de l'abonné.

  • [ @ftp_login = ] 'ftp_login'
    Nom d'utilisateur utilisé pour la connexion au service FTP. L'argument ftp_login est de type sysname, avec « anonymous » comme valeur par défaut.

  • [ @ftp_password = ] 'ftp_password'
    Mot de passe d'utilisateur utilisé pour la connexion au service FTP. L'argument ftp_password est de type sysname, avec NULL comme valeur par défaut.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort.

  • [ @conflict_retention = ] conflict_retention
    Indique la période de rétention, en jours, pendant laquelle les conflits sont retenus. L'argument conflict_retention est de type int, avec 14 jours comme valeur par défaut avant que la ligne en conflit ne soit purgée de la table de conflits.

  • [ @keep_partition_changes = ] 'keep_partition_changes'
    Indique si l'optimisation des modifications de partitions est activée lorsque les partitions précalculées ne peuvent pas être utilisées. L'argument keep_partition_changes est de type nvarchar(5), avec TRUE comme valeur par défaut. false signifie que les modifications de partitions ne sont pas optimisées, et que lorsque les partitions précalculées ne sont pas utilisées, les partitions envoyées à tous les Abonnés seront vérifiées lorsque les données sont modifiées dans une partition. true signifie que les modifications de partitions sont optimisées et que seuls les Abonnés dont des lignes se trouvent dans les partitions modifiées sont concernés. Lors de l'utilisation de partitions précalculées, attribuez à use_partition_groups la valeur true et attribuez à keep_partition_changes la valeur false. Pour plus d'informations, consultez Optimisation des performances des filtres paramétrés avec des partitions précalculées.

    Notes

    Si vous spécifiez la valeur true pour keep_partition_changes, spécifiez la valeur 1 pour le paramètre Agent d'instantané -MaxNetworkOptimization. Pour plus d'informations sur ce paramètre, consultez Agent de capture instantanée de réplication. Pour plus d'informations sur la spécification des paramètres d'agent, consultez Administration des agents de réplication.

    Avec les Abonnés SQL Server Compact 3.5 SP2, keep_partition_changes doit avoir la valeur True afin que les suppressions soient correctement propagées. Si la valeur est False, l'Abonné peut avoir plus de lignes que prévu.

  • [ @allow_subscription_copy= ] 'allow_subscription_copy'
    Active ou désactive la possibilité de copier les bases de données d'abonnement qui sont abonnées à la publication. L'argument allow_subscription_copy est de type nvarchar(5), avec FALSE comme valeur par défaut. La taille de la base de données d'abonnement doit être inférieure à 2 gigaoctets (Go).

  • [ @allow_synctoalternate = ] 'allow_synctoalternate'
    Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

  • [ @validate_subscriber_info = ] 'validate_subscriber_info'
    Répertorie les fonctions utilisées pour définir une partition d'abonné des données publiées lorsque les filtres de lignes paramétrables sont utilisés. L'argument validate_subscriber_info est de type nvarchar(500), avec NULL comme valeur par défaut. Ces informations sont utilisées par l'Agent de fusion pour valider la partition de l'abonné. Par exemple, si SUSER_SNAME est utilisé dans le filtre de lignes paramétrable, le paramètre doit être @validate_subscriber_info=N'SUSER_SNAME()'.

    Notes

    Vous ne devez pas spécifier vous-même ce paramètre mais autoriser SQL Server à déterminer automatiquement le critère de filtrage.

  • [ @add_to_active_directory = ] 'add_to_active_directory'
    Ce paramètre est déconseillé et n'est pris en charge que pour des raisons de compatibilité descendante des scripts. Vous ne pouvez plus ajouter d'informations de publication à Microsoft Active Directory.

  • [ @max_concurrent_merge = ] maximum_concurrent_merge
    Nombre maximal de processus de fusion simultanés. L'argument maximum_concurrent_merge est de type int avec 0 comme valeur par défaut. Si cette propriété a la valeur 0, cela indique qu'il peut exister un nombre illimité de processus de fusion simultanés à tout instant. Cette propriété permet de définir un nombre maximal de processus de fusion simultanés exécutables sur une publication de fusion à un moment donné. Si le nombre de processus de fusion planifiés en même temps dépasse le nombre maximal autorisé à l'exécution, les travaux en trop sont placés dans une file d'attente jusqu'à l'achèvement d'un processus de fusion en cours.

  • [ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
    Nombre maximal de sessions de l'Agent d'instantané qui peuvent être exécutées simultanément pour générer des instantanés de données filtrées pour les partitions d'abonnés. maximum_concurrent_dynamic_snapshots est de type int, avec 0 comme valeur par défaut. Si la valeur est 0, le nombre de sessions d'instantané est illimité. Si, au même moment, le nombre de processus d'instantané planifiés dépasse le nombre maximal autorisé, les travaux en excès sont placés dans une file d'attente jusqu'à achèvement d'un processus d'instantané en cours.

  • [ @use_partition_groups = ] 'use_partition_groups'
    Spécifie que les partitions précalculées doivent être utilisées pour optimiser le processus de synchronisation. use_partition_groups est de type nvarchar(5) et peut prendre l'une des valeurs suivantes :

    Valeur

    Description

    true

    La publication utilise les partitions précalculées.

    false

    La publication n'utilise pas les partitions précalculées.

    NULL (valeur par défaut)

    Le système détermine la stratégie de partitionnement.

    Les partitions précalculées sont utilisées par défaut. Pour éviter d'utiliser des partitions précalculées, use_partition_groups doit avoir la valeur false. Lorsqu'il a la valeur NULL, le système décide si les partitions précalculées peuvent être utilisées. Si les partitions précalculées ne peuvent pas être utilisées, cette valeur devient alors false sans générer d'erreur. Dans ce type de cas, keep_partition_changes peut avoir la valeur true pour fournir une certaine optimisation. Pour plus d'informations, consultez Filtres de lignes paramétrés et Optimisation des performances des filtres paramétrés avec des partitions précalculées.

  • [ @publication_compatibility_level = ] backward_comp_level
    Indique la compatibilité descendante de la publication. L'argument backward_comp_level est de type nvarchar(6) et peut prendre l'une des valeurs suivantes :

    Valeur

    Version

    70RTM

    SQL Server 7.0

    70SP1

    SQL Server 7.0 Service Pack 1

    70SP2

    SQL Server 7.0 Service Pack 2

    70SP3

    SQL Server 7.0 Service Pack 3

    70SP4

    SQL Server 7.0 Service Pack 4

    80RTM

    SQL Server 2000

    80SP1

    SQL Server 2000 Service Pack 1

    80SP2

    SQL Server 2000 Service Pack 2

    80SP3

    SQL Server 2000 Service Pack 3

    90RTM

    SQL Server 2005

    100RTM

    SQL Server 2008

  • [ @replicate_ddl = ] replicate_ddl
    Indique si la réplication de schéma est prise en charge pour la publication. L'argument replicate_ddl est de type int, avec 1 comme valeur par défaut. La valeur 1 indique que les instructions DDL (Data Definition Language) exécutées sur le serveur de publication sont répliquées, alors que la valeur 0 indique qu'elles ne sont pas répliquées. Pour plus d'informations, consultez Modification du schéma dans les bases de données de publication.

    Le paramètre @replicate_ddl est respecté lorsqu'une instruction DDL ajoute une colonne. Le paramètre @replicate_ddl est ignoré lorsqu'une instruction DDL modifie ou supprime une colonne pour les raisons suivantes.

    • Si une colonne est supprimée, sysarticlecolumns doit être mis à jour pour empêcher les nouvelles instructions DML d'inclure la colonne supprimée, ce qui provoquerait l'échec de l'agent de distribution. Le paramètre @replicate_ddl est ignoré, car la réplication doit toujours répliquer la modification de schéma.

    • Si une colonne est modifiée, le type de données source ou le paramètre d'acceptation des valeurs Null peut avoir changé, provoquant des instructions DML contenant une valeur qui n'est peut-être pas compatible avec la table sur l'Abonné. Ces instructions DML peuvent provoquer l'échec de l'agent de distribution. Le paramètre @replicate_ddl est ignoré, car la réplication doit toujours répliquer la modification de schéma.

    • Si une instruction DDL ajoute une colonne, sysarticlecolumns n'inclut pas la nouvelle colonne. Les instructions DML n'essayeront pas de répliquer les données pour la nouvelle colonne. Le paramètre est respecté, car la réplication ou la non réplication de l'instruction DDL est acceptable.

  • [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot'
    Indique si les abonnés de cette publication peuvent initier le processus d'instantané pour générer l'instantané filtré pour leur partition de données. L'argument allow_subscriber_initiated_snapshot est de type nvarchar(5), avec FALSE comme valeur par défaut. La valeur true indique que les abonnés peuvent initier le processus d'instantané.

  • [ @allow_web_synchronization = ] 'allow_web_synchronization'
    Indique si la publication est activée pour la synchronisation Web. L'argument allow_web_synchronization est de type nvarchar(5), avec FALSE comme valeur par défaut. La valeur true indique que les abonnements à cette publication peuvent être synchronisés par HTTPS. Pour plus d'informations, consultez Synchronisation Web pour la réplication de fusion. Pour prendre en charge les Abonnés SQL Server Compact 3.5 SP2, vous devez spécifier la valeur true.

  • [ @web_synchronization_url= ] 'web_synchronization_url'
    Indique la valeur par défaut de l'URL Internet utilisée pour la synchronisation Web. L'argument web_synchronization_url i est de type nvarchar(500), avec NULL comme valeur par défaut. Définit l'URL Internet par défaut si aucune URL n'a été explicitement définie lorsque sp_addmergepullsubscription_agent est exécuté.

  • [ @allow_partition_realignment = ] 'allow_partition_realignment'
    Détermine si des suppressions sont envoyées à l'abonné lorsqu'une modification de la ligne sur le serveur de publication a entraîné la modification de la partition. L'argument allow_partition_realignment est de type nvarchar(5), avec TRUE comme valeur par défaut. La valeur true envoie des suppressions à l'abonné pour refléter les résultats d'une modification de partition en supprimant les données qui ne font plus partie de la partition de l'abonné. La valeur false conserve les données de l'ancienne partition sur l'abonné et les modifications apportées à ces données sur le serveur de publication ne seront pas répliquées sur l'abonné, mais les modifications apportées sur l'abonné seront répliquées sur le serveur de publication. Le fait d'attribuer à allow_partition_realignment la valeur false permet de conserver dans un abonnement des données issues d'une ancienne partition afin qu'elles soient accessibles à des fins d'historique.

    Notes

    Les données qui demeurent sur l'Abonné lorsque allow_partition_realignment a la valeur false doivent être traitées en tant que données en lecture seule ; toutefois, cette contrainte n'est pas strictement imposée par le système de réplication.

  • [ @retention_period_unit = ] 'retention_period_unit'
    Spécifie les unités pour la période de rétention définie par retention. L'argument retention_period_unit est de type nvarchar(10) et peut prendre l'une des valeurs ci-après.

    Valeur

    Version

    day (par défaut)

    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.

  • [ @generation_leveling_threshold= ] generation_leveling_threshold
    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é. L'argument generation_leveling_threshold est de type int, avec 1 000 comme valeur par défaut. Pour plus d'informations, consultez Comment la réplication de fusion effectue le suivi et l'énumération des modifications.

  • [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
    Spécifie si les modifications sont téléchargées à partir de l'Abonné avant une réinitialisation automatique requise par une modification apportée à la publication, où la valeur 1 a été spécifiée pour @force_reinit_subscription. L'argument automatic_reinitialization_policy est de type bit, avec 0 comme valeur par défaut. La valeur 1 indique que les modifications sont téléchargées à partir de l'Abonné avant une réinitialisation automatique.

    Important

    Si vous ajoutez, supprimez ou modifiez un filtre paramétrable, les modifications en attente chez l'abonné ne peuvent pas être téléchargées vers le serveur de publication pendant la réinitialisation. Si vous voulez télécharger les modifications en attente, synchronisez tous les abonnements avant de modifier le filtre.

  • [ @conflict_logging = ] 'conflict_logging'
    Indique l'emplacement de stockage des enregistrements de conflits. L'argument conflict_logging est de type nvarchar(15), et peut prendre l'une des valeurs suivantes :

    Valeur

    Description

    publisher

    Les enregistrements de conflits sont stockés sur le serveur de publication.

    subscriber

    Les enregistrements de conflits sont stockés sur l'abonné qui a causé le conflit. Non pris en charge pour les Abonnés SQL Server Compact 3.5 SP2.

    both

    Les enregistrements de conflits sont stockés sur le serveur de publication et sur l'abonné.

    NULL (valeur par défaut)

    La réplication attribut automatiquement à conflict_logging la valeur both lorsque backward_comp_level a pour valeur 90RTM, et publisher dans tous les autres cas.

Valeurs des codes renvoyés

0 (succès) ou 1 (échec)

Notes

sp_addmergepublication est utilisée dans la réplication de fusion.

Les objets de publication figurant dans l'annuaire Active Directory ne peuvent être affichés à l'aide du paramètre @add_to_active_directory que si l'objet SQL Server a déjà été créé dans Active Directory.

S'il existe plusieurs publications à proclamer le même objet de base de données, seules les publications pour lesquelles replicate_ddl a la valeur 1 répliqueront les instructions ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION et ALTER TRIGGER DDL. Cependant, une instruction ALTER TABLE DROP COLUMN DDL sera répliquée par toutes les publications publiant la colonne supprimée.

Pour les Abonnés SQL Server Compact 3.5 SP2, la valeur de alternate_snapshot_folder est uniquement utilisée lorsque snapshot_in_default_folder a pour valeur false.

Si la réplication DDL est activée (replicate_ddl**=1**) pour une publication alors que vous voulez apporter des modifications DDL sans réplication à cette publication, exécutez d'abord sp_changemergepublication (Transact-SQL) pour définir replicate_ddl sur 0. Après exécution des instructions DDL sans réplication, vous pouvez exécuter de nouveau sp_changemergepublication pour réactiver la réplication DDL.

Exemple

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. For information about 
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
USE [AdventureWorks2008R2]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks2008R2.',
  @publication_compatibility_level  = N'90RTM';

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
  @publication = @publication, 
  @job_login = @login, 
  @job_password = @password;
GO

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 la procédure sp_addmergepublication.