sp_addmergepublication (Transact-SQL)sp_addmergepublication (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database (Managed Instance uniquement) nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Crée une nouvelle publication de fusion.Creates a new merge publication. Cette procédure stockée est exécutée sur le serveur de publication dans la base de données publiée.This stored procedure is executed at the Publisher on the database that is being published.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

  
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' ]  

ArgumentsArguments

[ @publication = ] 'publication'Nom de la publication de fusion à créer.[ @publication = ] 'publication' Is the name of the merge publication to create. publication est de type sysname, sans valeur par défaut et ne doit pas être le mot clé ALL.publication is sysname, with no default, and must not be the keyword ALL. Le nom de la publication doit être unique dans la base de données.The name of the publication must be unique within the database.

[ @description = ] 'description'Description de la publication.[ @description = ] 'description' Is the publication description. Description est de type nvarchar (255) , avec NULL comme valeur par défaut.description is nvarchar(255), with a default of NULL.

[ @retention = ] retentionPériode de rétention, en unités de période de rétention, pour laquelle enregistrer les modifications pour la publicationdonnée.[ @retention = ] retention Is the retention period, in retention period units, for which to save changes for the given publication. la rétention est de type int, avec 14 unités comme valeur par défaut.retention is int, with a default of 14 units. Les unités de période de rétention sont définies par retention_period_unit.Retention period units are defined by retention_period_unit. 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.If the subscription is not synchronized within the retention period, and the pending changes it would have received have been removed by a clean-up operation at the Distributor, the subscription expires and must be reinitialized. La période de rétention maximum autorisable est le nombre de jours compris entre le 31 décembre 9999 et la date actuelle.The maximum allowable retention period is the number of days between Dec. 31, 9999 and the current date.

Notes

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.The retention period for merge publications has a 24 hour grace period to accommodate Subscribers in different time zones. 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.If, for example, you set a retention period of one day, the actual retention period is 48 hours.

[ @sync_mode = ] 'sync_mode'Mode de la synchronisation initiale des abonnés à la publication.[ @sync_mode = ] 'sync_mode' Is the mode of the initial synchronization of subscribers to the publication. sync_mode est de type nvarchar (10) et peut prendre l’une des valeurs suivantes.sync_mode is nvarchar(10), and can be one of the following values.

ValueValue DescriptionDescription
en mode natif valeursnative (default) Produit une copie par bloc en mode natif de toutes les tables.Produces native-mode bulk copy program output of all tables.
charactercharacter Produit une copie par bloc en mode caractère de toutes les tables.Produces character-mode bulk copy program output of all tables. Requis pour prendre MicrosoftMicrosoft en charge SQL Server CompactSQL Server Compact lesSQL ServerSQL Server abonnés et non.Required to support MicrosoftMicrosoft SQL Server CompactSQL Server Compact and non-SQL ServerSQL Server Subscribers.

[ @allow_push = ] 'allow_push'Spécifie si des abonnements par émission de données peuvent être créés pour la publication donnée.[ @allow_push = ] 'allow_push' Specifies if push subscriptions can be created for the given publication. allow_push est de type nvarchar (5) , avec true comme valeur par défaut, ce qui permet l’envoi d’abonnements sur la publication.allow_push is nvarchar(5), with a default of TRUE, which allows push subscriptions on the publication.

[ @allow_pull = ] 'allow_pull'Spécifie si des abonnements par extraction de données peuvent être créés pour la publication donnée.[ @allow_pull = ] 'allow_pull' Specifies if pull subscriptions can be created for the given publication. allow_pull est de type nvarchar (5) , avec true comme valeur par défaut, ce qui autorise les abonnements par extraction de la publication.allow_pull is nvarchar(5), with a default of TRUE, which allows pull subscriptions on the publication. Vous devez spécifier la valeur true SQL Server CompactSQL Server Compact pour prendre en charge les abonnés.You must specify true to support SQL Server CompactSQL Server Compact Subscribers.

[ @allow_anonymous = ] 'allow_anonymous'Spécifie si des abonnements anonymes peuvent être créés pour la publication donnée.[ @allow_anonymous = ] 'allow_anonymous' Specifies if anonymous subscriptions can be created for the given publication. allow_anonymous est de type nvarchar (5) , avec true comme valeur par défaut, ce qui permet des abonnements anonymes à la publication.allow_anonymous is nvarchar(5), with a default of TRUE, which allows anonymous subscriptions on the publication. Pour prendre SQL Server CompactSQL Server Compact en charge les abonnés, vous devez spécifier true.To support SQL Server CompactSQL Server Compact Subscribers, you must specify true.

[ @enabled_for_internet = ] 'enabled_for_internet'Spécifie si la publication est activée pour Internet et détermine si le protocole FTP (File Transfer Protocol) peut être utilisé pour transférer les fichiers d’instantanés à un abonné.[ @enabled_for_internet = ] 'enabled_for_internet' Specifies if the publication is enabled for the Internet, and determines if file transfer protocol (FTP) can be used to transfer the snapshot files to a subscriber. enabled_for_internet est de type nvarchar (5) , avec false comme valeur par défaut.enabled_for_internet is nvarchar(5), with a default of FALSE. 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.If true, the synchronization files for the publication are put into the C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp directory. L'utilisateur doit créer le répertoire FTP.The user must create the Ftp directory. Si la valeurest false, la publication n’est pas activée pour l’accès Internet.If false, the publication is not enabled for Internet access.

[ @centralized_conflicts = ] 'centralized_conflicts'Ce paramètre est déconseillé et n’est pris en charge que pour la compatibilité descendante des scripts.[ @centralized_conflicts = ] 'centralized_conflicts' This parameter has been deprecated and is only supported for the backward compatibility of scripts. Utilisez conflict_logging pour spécifier l’emplacement où les enregistrements en conflit sont stockés.Use conflict_logging to specify the location where conflict records are stored.

[ @dynamic_filters = ] 'dynamic_filters'Permet à la publication de fusion d’utiliser des filtres de lignes paramétrables.[ @dynamic_filters = ] 'dynamic_filters' Enables the merge publication to use parameterized row filters. dynamic_filters est de type nvarchar (5) , avec false comme valeur par défaut.dynamic_filters is nvarchar(5), with a default of FALSE.

Notes

Vous ne devez pas spécifier vous-même ce paramètre mais autoriser SQL ServerSQL Server à déterminer automatiquement si les filtres de lignes paramétrables sont utilisés.You should not specify this parameter but instead allow SQL ServerSQL Server to automatically determine if parameterized row filters are being used. Si vous spécifiez la valeur true pour dynamic_filters, vous devez définir un filtre de lignes paramétrable pour l’article.If you specify a value of true for dynamic_filters, you must define a parameterized row filter for the article. Pour plus d'informations, consultez Définir et modifier un filtre de lignes paramétrable pour un article de fusion.For more information, see Define and Modify a Parameterized Row Filter for a Merge Article.

[ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'Spécifie si les fichiers d’instantanés sont stockés dans le dossier par défaut.[ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder' Specifies if the snapshot files are stored in the default folder. snapshot_in_default_folder est de type nvarchar (5) , avec true comme valeur par défaut.snapshot_in_default_folder is nvarchar(5), with a default of TRUE. Si la valeur est true, les fichiers d’instantanés se trouvent dans le dossier par défaut.If true, snapshot files can be found in the default folder. Si la valeurest false, les fichiers d’instantané sont stockés à l’emplacement secondaire spécifié par alternate_snapshot_folder.If false, snapshot files will be stored in the alternate location specified by 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).Alternate locations can be on another server, on a network drive, or on a removable media (such as CD-ROM or removable disks). 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é.You can also save the snapshot files to a File Transfer Protocol (FTP) site, for retrieval by the Subscriber at a later time. Notez que ce paramètre peut avoir la valeur true et qu’il a toujours un emplacement spécifié par alt_snapshot_folder.Note that this parameter can be true and still have a location specified by alt_snapshot_folder. Cette combinaison indique que les fichiers d'instantané sont stockés dans les emplacements par défaut et secondaires.This combination specifies that the snapshot files will be stored in both the default and alternate locations.

[ @alt_snapshot_folder = ] 'alternate_snapshot_folder'Spécifie l’emplacement du dossier de remplacement pour l’instantané.[ @alt_snapshot_folder = ] 'alternate_snapshot_folder' Specifies the location of the alternate folder for the snapshot. alternate_snapshot_folder est de type nvarchar (255) , avec NULL comme valeur par défaut.alternate_snapshot_folder is nvarchar(255), with a default of NULL.

[ @pre_snapshot_script = ] 'pre_snapshot_script'Spécifie un pointeur vers un emplacement de fichier . SQL .[ @pre_snapshot_script = ] 'pre_snapshot_script' Specifies a pointer to an .sql file location. pre_snapshot_script est de type nvarchar (255) , avec NULL comme valeur par défaut.pre_snapshot_script is nvarchar(255), with a default of NULL. 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é.The Merge Agent will run the pre-snapshot script before any of the replicated object scripts when applying the snapshot at a Subscriber. 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.The script is executed in the security context used by the Merge Agent when connecting to the subscription database. Les scripts de pré-instantané ne sont SQL Server CompactSQL Server Compact pas exécutés sur les abonnés.Pre-snapshot scripts are not run on SQL Server CompactSQL Server Compact Subscribers.

[ @post_snapshot_script = ] 'post_snapshot_script'Spécifie un pointeur vers un emplacement de fichier . SQL .[ @post_snapshot_script = ] 'post_snapshot_script' Specifies a pointer to an .sql file location. post_snapshot_script est de type nvarchar (255) , avec NULL comme valeur par défaut.post_snapshot_script is nvarchar(255), with a default of NULL. 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.The Merge Agent will run the post-snapshot script after all the other replicated object scripts and data have been applied during an initial synchronization. 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.The script is executed in the security context used by the Merge Agent when connecting to the subscription database. Les scripts postérieurs à l’instantané ne SQL Server CompactSQL Server Compact sont pas exécutés sur les abonnés.Post-snapshot scripts are not run on SQL Server CompactSQL Server Compact Subscribers.

[ @compress_snapshot = ] 'compress_snapshot'Spécifie que l’instantané écrit dans **@alt_snapshot_folder** l’emplacement doit être compressé MicrosoftMicrosoft au format cab.[ @compress_snapshot = ] 'compress_snapshot' Specifies that the snapshot written to the **@alt_snapshot_folder** location is to be compressed into the MicrosoftMicrosoft CAB format. compress_snapshot est de type nvarchar (5) , avec false comme valeur par défaut.compress_snapshot is nvarchar(5), with a default of FALSE. false spécifie que l’instantané ne sera pas compressé; true spécifie que l’instantané doit être compressé.false specifies that the snapshot will not be compressed; true specifies that the snapshot is to be compressed. Les fichiers d'instantané dépassant 2 Go ne peuvent pas être compressés.Snapshot files that are larger than 2GB cannot be compressed. 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é.Compressed snapshot files are uncompressed at the location where the Merge Agent runs; pull subscriptions are typically used with compressed snapshots so that files are uncompressed at the Subscriber. L'instantané se trouvant dans le dossier par défaut ne peut pas être compressé.The snapshot in the default folder cannot be compressed. Pour prendre SQL Server CompactSQL Server Compact en charge les abonnés, vous devez spécifier false.To support SQL Server CompactSQL Server Compact Subscribers, you must specify false.

[ @ftp_address = ] 'ftp_address'Adresse réseau du service FTP du serveur de distribution.[ @ftp_address = ] 'ftp_address' Is the network address of the FTP service for the Distributor. ftp_address est de type sysname, avec NULL comme valeur par défaut.ftp_address is sysname, with a default of NULL. Indique l'emplacement à partir duquel l'Agent de fusion d'un abonné peut extraire les fichiers d'instantané de la publication.Specifies where publication snapshot files are located for the Merge Agent of a subscriber to pick up. Étant donné que cette propriété est stockée pour chaque publication, chaque publication peut avoir un ftp_addressdifférent.Since this property is stored for each publication, each publication can have a different ftp_address. La publication doit prendre en charge la propagation des instantanés à l'aide du protocole FTP.The publication must support propagating snapshots using FTP.

[ @ftp_port = ] ftp_portNuméro de port du service FTP du serveur de distribution.[ @ftp_port = ] ftp_port Is the port number of the FTP service for the Distributor. ftp_port est de type int, avec 21 comme valeur par défaut.ftp_port is int, with a default of 21. Indique l'emplacement à partir duquel l'Agent de fusion d'un Abonné peut extraire les fichiers d'instantané de la publication.Specifies where the publication snapshot files are located for the Merge Agent of a subscriber to pick up. Étant donné que cette propriété est stockée pour chaque publication, chaque publication peut avoir sa propre ftp_port.Since this property is stored for each publication, each publication can have its own ftp_port.

[ @ftp_subdirectory = ] 'ftp_subdirectory'Spécifie l’emplacement où les fichiers d’instantanés seront disponibles pour la Agent de fusion de l’abonné à récupérer si la publication prend en charge la propagation d’instantanés à l’aide de FTP.[ @ftp_subdirectory = ] 'ftp_subdirectory' Specifies where the snapshot files will be available for the Merge Agent of the subscriber to pick up if the publication supports propagating snapshots using FTP. ftp_subdirectory est de type nvarchar (255) , avec NULL comme valeur par défaut.ftp_subdirectory is nvarchar(255), with a default of NULL. Étant donné que cette propriété est stockée pour chaque publication, chaque publication peut avoir son propre ftp_subdirctory ou choisir d’avoir un sous-répertoire, indiqué par une valeur null.Since this property is stored for each publication, each publication can have its own ftp_subdirctory or choose to have no subdirectory, indicated with a NULL value.

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.When pre-generating snapshots for publications with parameterized filters, the data snapshot for each Subscriber partition needs to be in its own folder. La structure de répertoire pour les instantanés prégénérés à l'aide de FTP doit répondre aux conditions suivantes :The directory structure for pre-generated snapshots using FTP must obey the following structure:

alternate_snapshot_folder\ftp\publisher_publicationDB_publicationPartitionID\.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é.The values above in italics will depend on the specifics of the publication and Subscriber partition.

[ @ftp_login = ] 'ftp_login'Nom d’utilisateur utilisé pour la connexion au service FTP.[ @ftp_login = ] 'ftp_login' Is the username used to connect to the FTP service. ftp_login est de type sysname, avec «Anonymous» comme valeur par défaut.ftp_login is sysname, with a default of 'anonymous'.

[ @ftp_password = ] 'ftp_password'Mot de passe de l’utilisateur utilisé pour la connexion au service FTP.[ @ftp_password = ] 'ftp_password' Is the user password used to connect to the FTP service. ftp_password est de type sysname, avec NULL comme valeur par défaut.ftp_password is sysname, with a default of NULL.

Important

N'utilisez pas de mot de passe vide.Do not use a blank password. Utilisez un mot de passe fort.Use a strong password.

[ @conflict_retention = ] conflict_retentionSpécifie la période de rétention, en jours, pendant laquelle les conflits sont conservés.[ @conflict_retention = ] conflict_retention Specifies the retention period, in days, for which conflicts are retained. conflict_retention est de type int, avec 14 jours par défaut avant que la ligne en conflit soit purgée de la table de conflits.conflict_retention is int, with a default of 14 days before the conflict row is purged from the conflict table.

[ @keep_partition_changes = ] 'keep_partition_changes'Spécifie s’il faut activer les optimisations de modification de partition lorsque les partitions précalculées ne peuvent pas être utilisées.[ @keep_partition_changes = ] 'keep_partition_changes' Specifies whether to enable partition change optimizations when precomputed partitions cannot be used. keep_partition_changes est de type nvarchar (5) , avec true comme valeur par défaut.keep_partition_changes is nvarchar(5), with a default of TRUE. false signifie que les modifications de partition ne sont pas optimisées et que les partitions précalculées ne sont pas utilisées, les partitions envoyées à tous les abonnés sont vérifiées lorsque les données sont modifiées dans une partition.false means that partition changes are not optimized, and when precomputed partitions are not used, the partitions sent to all Subscribers will be verified when data changes in a partition. true signifie que les modifications de partition sont optimisées et que seuls les abonnés ayant des lignes dans les partitions modifiées sont affectés.true means that partition changes are optimized, and only Subscribers having rows in the changed partitions are affected. Lorsque vous utilisez des partitions précalculées, affectez à use_partition_groups la valeur true et affectez à keep_partition_changes la valeur false.When using precomputed partitions, set use_partition_groups to true and set keep_partition_changes to false. Pour plus d’informations, consultez Optimiser les performances des filtres paramétrés avec des partitions précalculées.For more information, see Optimize Parameterized Filter Performance with Precomputed Partitions.

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.If you specify a value of true for keep_partition_changes, specify a value of 1 for the Snapshot Agent parameter -MaxNetworkOptimization. Pour plus d’informations sur ce paramètre, consultez réplication agent d’instantané.For more information about this parameter, see Replication Snapshot Agent. Pour plus d’informations sur la spécification des paramètres de l’agent, voir administration de l’agentde réplication.For information about how to specify agent parameters, see Replication Agent Administration.

Avec SQL Server CompactSQL Server Compact les abonnés, keep_partition_changes doit avoir la valeur true pour garantir que les suppressions sont correctement propagées.With SQL Server CompactSQL Server Compact subscribers, keep_partition_changes must be set to true to ensure that deletes are correctly propagated. Lorsque la valeur est false, l'abonné peut avoir plus de lignes que prévu.When set to false, the subscriber might have more rows than expected.

[ @allow_subscription_copy = ] 'allow_subscription_copy'Active ou désactive la possibilité de copier les bases de données d’abonnement qui s’abonnent à cette publication.[ @allow_subscription_copy = ] 'allow_subscription_copy' Enables or disables the ability to copy the subscription databases that subscribe to this publication. allow_subscription_copy est de type nvarchar (5) , avec false comme valeur par défaut.allow_subscription_copy is nvarchar(5), with a default of FALSE. La taille de la base de données d'abonnement copiée doit être inférieure à 2 gigaoctets (Go).The size of the subscription database being copied must be less than 2 gigabytes (GB).

[ @allow_synctoalternate = ] 'allow_synctoalternate' Identifié à titre d'information uniquement.Identified for informational purposes only. Non pris en charge.Not supported. La compatibilité future n'est pas garantie.Future compatibility is not guaranteed.[ @allow_synctoalternate = ] 'allow_synctoalternate' Identifié à titre d'information uniquement.Identified for informational purposes only. Non pris en charge.Not supported. La compatibilité future n'est pas garantie.Future compatibility is not guaranteed.

[ @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.[ @validate_subscriber_info = ] 'validate_subscriber_info' Lists the functions that are used to define a Subscriber partition of the published data when parameterized row filters are used. validate_subscriber_info est de type nvarchar (500) , avec NULL comme valeur par défaut.validate_subscriber_info is nvarchar(500), with a default of NULL. Ces informations sont utilisées par l'Agent de fusion pour valider la partition de l'abonné.This information is used by the Merge Agent to validate the Subscriber's partition. Par exemple, si SUSER_SNAME est utilisé dans le filtre de lignes paramétrable, le paramètre doit @validate_subscriber_info=N'SUSER_SNAME()'être.For example, if SUSER_SNAME is used in the parameterized row filter, the parameter should be @validate_subscriber_info=N'SUSER_SNAME()'.

Notes

Vous ne devez pas spécifier vous-même ce paramètre mais autoriser SQL ServerSQL Server à déterminer automatiquement le critère de filtrage.You should not specify this parameter but instead allow SQL ServerSQL Server to automatically determine the filtering criterion.

[ @add_to_active_directory = ] 'add_to_active_directory'Ce paramètre est déconseillé et n’est pris en charge que pour la compatibilité descendante des scripts.[ @add_to_active_directory = ] 'add_to_active_directory' This parameter has been deprecated and is only supported for the backward compatibility of scripts. Vous ne pouvez plus ajouter d'informations de publication à MicrosoftMicrosoft Active Directory.You can no longer add publication information to the MicrosoftMicrosoft Active Directory.

[ @max_concurrent_merge = ] maximum_concurrent_mergeNombre maximal de processus de fusion simultanés.[ @max_concurrent_merge = ] maximum_concurrent_merge The maximum number of concurrent merge processes. maximum_concurrent_merge est de type int avec 0 comme valeur par défaut.maximum_concurrent_merge is int with a default of 0. La valeur 0 pour cette propriété signifie qu’il n’y a aucune limite au nombre de processus de fusion simultanés en cours d’exécution à un moment donné.A value of 0 for this property means that there is no limit to the number of concurrent merge processes running at any given time. 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é.This property sets a limit on the number of concurrent merge processes that can be run against a merge publication at one time. 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.If there are more merge processes scheduled at the same time than the value allows to run, then the excess jobs will be put into a queue and wait until a currently-running merge process finishes.

[ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshotsNombre maximal de sessions 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.[ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots The maximum number of Snapshot Agent sessions that can be run concurrently to generate filtered data snapshots for Subscriber partitions. maximum_concurrent_dynamic_snapshots est de type int avec 0 comme valeur par défaut.maximum_concurrent_dynamic_snapshots is int with a default of 0. Si la valeur est 0, le nombre de sessions d’instantané n’est pas limité.If 0, there is no limit to the number snapshot sessions. 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.If there are more snapshot processes scheduled at the same time than the value allows to run, then the excess jobs will be put into a queue and wait until a currently-running snapshot process finishes.

[ @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 = ] 'use_partition_groups' Specifies that precomputed partitions should be used to optimize the synchronization process. use_partition_groups est de type nvarchar (5) et peut prendre l’une des valeurs suivantes:use_partition_groups is nvarchar(5), and can be one of these values:

ValueValue DescriptionDescription
truetrue La publication utilise des partitions précalculées.Publication uses precomputed partitions.
falsefalse La publication n'utilise pas de partitions précalculées.Publication does not use precomputed partitions.
NULL (valeur par défaut)NULL(default) Le système détermine la stratégie de partitionnement.System decides on the partitioning strategy.

Les partitions précalculées sont utilisées par défaut.Precomputed partitions are used by default. Pour éviter d’utiliser des partitions précalculées, use_partition_groups doit avoir la valeur false.To avoid using precomputed partitions, use_partition_groups must be set to false. Lorsqu'il a la valeur NULL, le système décide si les partitions précalculées peuvent être utilisées.When NULL, the system will decide if precomputed partitions can be used. Si les partitions précalculées ne peuvent pas être utilisées, cette valeur devient alors false sans générer d’erreurs.If precomputed partitions cannot be used, then this value will effectively become false without generating any errors. Dans ce cas, keep_partition_changes peut avoir la valeur true pour offrir une certaine optimisation.In such cases, keep_partition_changes can be set to true to provide some optimization. Pour plus d’informations, consultez filtres de lignes paramétrables et optimiser les performances des filtres paramétrés avec des partitionsprécalculées.For more information, see Parameterized Row Filters and Optimize Parameterized Filter Performance with Precomputed Partitions.

[ @publication_compatibility_level = ] backward_comp_levelIndique la compatibilité descendante de la publication.[ @publication_compatibility_level = ] backward_comp_level Indicates the backward compatibility of the publication. backward_comp_level est de type nvarchar (6) et peut prendre l’une des valeurs suivantes:backward_comp_level is nvarchar(6), and can be one of these values:

ValueValue VersionVersion
90RTM90RTM SQL Server 2005 (9.x)SQL Server 2005 (9.x)
100RTM100RTM SQL Server 2008SQL Server 2008

[ @replicate_ddl = ] replicate_ddlIndique si la réplication de schéma est prise en charge pour la publication.[ @replicate_ddl = ] replicate_ddl Indicates if schema replication is supported for the publication. replicate_ddl est de type int, avec 1 comme valeur par défaut.replicate_ddl is int, with a default of 1. 1 indique que les instructions DDL (Data Definition Language) exécutées sur le serveur de publication sont répliquées, et 0 indique que les instructions DDL ne sont pas répliquées.1 indicates that data definition language (DDL) statements executed at the publisher are replicated, and 0 indicates that DDL statements are not replicated. Pour plus d’informations, consultez Modifier le schéma dans les bases de données de publication.For more information, see Make Schema Changes on Publication Databases.

Le *@replicate_ddl* paramètre est respecté lorsqu’une instruction DDL ajoute une colonne.The *@replicate_ddl* parameter is honored when a DDL statement adds a column. Le *@replicate_ddl* paramètre est ignoré lorsqu’une instruction DDL modifie ou supprime une colonne pour les raisons suivantes.The *@replicate_ddl* parameter is ignored when a DDL statement alters or drops a column for the following reasons.

  • Lorsqu’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.When a column is dropped, sysarticlecolumns must be updated to prevent new DML statements from including the dropped column which would cause the distribution agent to fail. Le *@replicate_ddl* paramètre est ignoré, car la réplication doit toujours répliquer la modification de schéma.The *@replicate_ddl* parameter is ignored because replication must always replicate the schema change.

  • Lorsqu'une colonne est modifiée, le type de données source ou la possibilité d'une valeur NULL peuvent avoir changé et les instructions DML peuvent contenir une valeur non compatible avec la table sur l'abonné.When a column is altered, the source data type or nullability might have changed, causing DML statements to contain a value that may not be compatible with the table at the subscriber. Ces instructions DML peuvent entraîner l'échec de l'agent de distribution.Such DML statements might cause distribution agent to fail. Le *@replicate_ddl* paramètre est ignoré, car la réplication doit toujours répliquer la modification de schéma.The *@replicate_ddl* parameter is ignored because replication must always replicate the schema change.

  • Lorsqu’une instruction DDL ajoute une nouvelle colonne, sysarticlecolumns n’inclut pas la nouvelle colonne.When a DDL statement adds a new column, sysarticlecolumns does not include the new column. Les instructions DML n'essayeront pas de répliquer les données pour la nouvelle colonne.DML statements will not try to replicate data for the new column. Le paramètre est respecté parce que la réplication ou la réplication DDL est acceptable.The parameter is honored because either replicating or not replicating the DDL is acceptable.

[ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot'Indique si les abonnés à cette publication peuvent initier le processus d’instantané pour générer l’instantané filtré pour leur partition de données.[ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot' Indicates if Subscribers to this publication can initiate the snapshot process to generate the filtered snapshot for their data partition. allow_subscriber_initiated_snapshot est de type nvarchar (5) , avec false comme valeur par défaut.allow_subscriber_initiated_snapshot is nvarchar(5), with a default of FALSE. la valeur true indique que les abonnés peuvent initier le processus d’instantané.true indicates that Subscribers can initiate the snapshot process.

[ @allow_web_synchronization = ] 'allow_web_synchronization'Spécifie si la publication est activée pour la synchronisation Web.[ @allow_web_synchronization = ] 'allow_web_synchronization' Specifies if the publication is enabled for Web synchronization. allow_web_synchronization est de type nvarchar (5) , avec false comme valeur par défaut.allow_web_synchronization is nvarchar(5), with a default of FALSE. la valeur true indique que les abonnements à cette publication peuvent être synchronisés via HTTPS.true specifies that subscriptions to this publication can be synchronized over HTTPS. Pour plus d’informations, voir Web Synchronization for Merge Replication.For more information, see Web Synchronization for Merge Replication. Pour prendre SQL Server CompactSQL Server Compact en charge les abonnés, vous devez spécifier true.To support SQL Server CompactSQL Server Compact Subscribers, you must specify true.

[ @web_synchronization_url = ] 'web_synchronization_url'Spécifie la valeur par défaut de l’URL Internet utilisée pour la synchronisation Web.[ @web_synchronization_url = ] 'web_synchronization_url' Specifies the default value of the Internet URL used for Web synchronization. web_synchronization_url is nvarchar (500) , avec NULL comme valeur par défaut.web_synchronization_url is nvarchar(500), with a default of NULL. Définit l’URL Internet par défaut si aucune URL n’est définie explicitement lors de l’exécution de sp_addmergepullsubscription_agent .Defines the default Internet URL if one is not explicitly set when sp_addmergepullsubscription_agent is executed.

[ @allow_partition_realignment = ] 'allow_partition_realignment'Détermine si les suppressions sont envoyées à l’abonné lorsque la modification de la ligne sur le serveur de publication entraîne la modification de sa partition.[ @allow_partition_realignment = ] 'allow_partition_realignment' Determines whether deletes are sent to the subscriber when modification of the row on the publisher causes it to change its partition. allow_partition_realignment est de type nvarchar (5) , avec true comme valeur par défaut.allow_partition_realignment is nvarchar(5), with a default of TRUE. true envoie des suppressions à 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é.true sends deletes to the Subscriber to reflect the results of a partition change by removing data that is no longer part of the Subscriber's partition. false laisse les données d’une ancienne partition 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é, mais les modifications apportées sur l’abonné sont répliquées sur le serveur de publication.false leaves the data from an old partition on the Subscriber, where changes made to this data on the Publisher will not replicate to this Subscriber, but changes made on the Subscriber will replicate to the Publisher. La définition de allow_partition_realignment sur false est utilisée pour conserver les données dans un abonnement à partir d’une ancienne partition lorsque les données doivent être accessibles à des fins d’historique.Setting allow_partition_realignment to false is used to retain data in a subscription from an old partition when the data needs to be accessible for historical purposes.

Notes

Les données qui demeurent sur l’abonné en raison de la définition de allow_partition_realignment sur false doivent être traitées comme si elles étaient en lecture seule; Toutefois, cela n’est pas appliqué par le système de réplication.Data that remains at the Subscriber as a result of setting allow_partition_realignment to false should be treated as if it were read-only; however, this is not enforced by the replication system.

[ @retention_period_unit = ] 'retention_period_unit'Spécifie les unités pour la période de rétention définie par rétention.[ @retention_period_unit = ] 'retention_period_unit' Specifies the units for the retention period set by retention. retention_period_unit est de type nvarchar (10) et peut prendre l’une des valeurs suivantes.retention_period_unit is nvarchar(10), and can be one of the following values.

ValueValue VersionVersion
jour valeursday (default) La période de rétention est spécifiée en jours.Retention period is specified in days.
weekweek La période de rétention est spécifiée en semaines.Retention period is specified in weeks.
monthmonth La période de rétention est spécifiée en mois.Retention period is specified in months.
yearyear La période de rétention est spécifiée en années.Retention period is specified in years.

[ @generation_leveling_threshold = ] generation_leveling_thresholdSpécifie le nombre de modifications contenues dans une génération.[ @generation_leveling_threshold = ] generation_leveling_threshold Specifies the number of changes that are contained in a generation. Une génération est une collection de modifications remises à un serveur de publication ou à un Abonné.A generation is a collection of changes that are delivered to a Publisher or Subscriber. generation_leveling_threshold est de type int, avec une valeur par défaut de 1000.generation_leveling_threshold is int, with a default value of 1000.

[ @automatic_reinitialization_policy = ] automatic_reinitialization_policySpé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 **@force_reinit_subscription** valeur 1 a été spécifiée pour.[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy Specifies whether changes are uploaded from the Subscriber before an automatic reinitialization required by a change to the publication, where a value of 1 was specified for **@force_reinit_subscription**. automatic_reinitialization_policy est de bits, avec 0 comme valeur par défaut.automatic_reinitialization_policy is bit, with a default value of 0. 1 signifie que les modifications sont téléchargées à partir de l’abonné avant une réinitialisation automatique.1 means that changes are uploaded from the Subscriber before an automatic reinitialization occurs.

Important

Si vous ajoutez, supprimez ou modifiez un filtre paramétré, les modifications en attente chez l'abonné ne peuvent pas être chargées sur le serveur de publication pendant la réinitialisation.If you add, drop, or change a parameterized filter, pending changes at the Subscriber cannot be uploaded to the Publisher during reinitialization. Si vous voulez télécharger les modifications en attente, synchronisez tous les abonnements avant de modifier le filtre.If you want to upload pending changes, synchronize all subscriptions before changing the filter.

[ @conflict_logging = ] 'conflict_logging'Spécifie l’emplacement de stockage des enregistrements en conflit.[ @conflict_logging = ] 'conflict_logging' Specifies where conflict records are stored. conflict_logging est de type nvarchar (15) et peut prendre l’une des valeurs suivantes:conflict_logging is nvarchar(15), and can be one of the following values:

ValueValue DescriptionDescription
publisher (serveur de publication)publisher Les enregistrements en conflit sont stockés sur le serveur de publication.Conflict records are stored at the Publisher.
subscriber (Abonné)subscriber Les enregistrements en conflit sont stockés dans l'Abonné à l'origine du conflit.Conflict records are stored at the Subscriber that caused the conflict. Non pris en SQL Server CompactSQL Server Compact charge pour les abonnés.Not supported for SQL Server CompactSQL Server Compact Subscribers.
both (les deux)both Les enregistrements en conflit sont stockés dans le serveur de publication et l'Abonné.Conflict records are stored at both the Publisher and Subscriber.
NULL (par défaut)NULL (default) La réplication définit automatiquement conflict_logging à la fois lorsque la valeur backward_comp_level est 90RTM et à Publisher dans tous les autres cas.Replication automatically sets conflict_logging to both when the value backward_comp_level is 90RTM and to publisher in all other cases.

Valeurs des codes de retourReturn Code Values

0 (réussite) ou 1 (échec)0 (success) or 1 (failure)

NotesRemarks

sp_addmergepublication est utilisée dans la réplication de fusion.sp_addmergepublication is used in merge replication.

Pour répertorier les objets de publication sur le **@add_to_active_directory** Active Directory à l' SQL ServerSQL Server aide du paramètre, l’objet doit déjà être créé dans le Active Directory.To list publication objects to the Active Directory using the **@add_to_active_directory** parameter, the SQL ServerSQL Server object must already be created in the Active Directory.

S’il existe plusieurs publications qui publient le même objet de base de données, seules les publications dont la valeur replicate_ddl est 1 RÉPLIQUENT les instructions ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION et ALTER TRIGGER DDL.If multiple publications exist that publish the same database object, only publications with a replicate_ddl value of 1 will replicate ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION, and ALTER TRIGGER DDL statements. Cependant, une instruction ALTER TABLE DROP COLUMN DDL sera répliquée par toutes les publications publiant la colonne supprimée.However, an ALTER TABLE DROP COLUMN DDL statement will be replicated by all publications that are publishing the dropped column.

Pour SQL Server CompactSQL Server Compact les abonnés, la valeur de alternate_snapshot_folder est utilisée uniquement lorsque la valeur de snapshot_in_default_folder est false.For SQL Server CompactSQL Server Compact Subscribers, the value of alternate_snapshot_folder is only used when the value of snapshot_in_default_folder is false.

Si la réplication DDL est activée (replicate_ddl = 1) pour une publication, afin d’effectuer des modifications DDL non répliquées dans la publication, (sp_changemergepublication Transact) -SQL doit d’abord être exécutée pour définir replicate_ddl sur 0.With DDL replication enabled (replicate_ddl=1) for a publication, in order to make non-replicating DDL changes to the publication, sp_changemergepublication (Transact-SQL) must first be executed to set replicate_ddl to 0. Après l’émission des instructions DDL non répliquées, sp_changemergepublication peut être réexécuté pour réactiver la réplication DDL.After the non-replicating DDL statements have been issued, sp_changemergepublication can be run again to turn DDL replication back on.

ExempleExample

-- 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'AdventureWorks2012'; 
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 [AdventureWorks2012]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks2012.',
  @publication_compatibility_level  = N'120RTM';

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

AutorisationsPermissions

Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter sp_addmergepublication.Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_addmergepublication.

Voir aussiSee Also

Create a Publication Create a Publication
Publier des données et des objets de base de données Publish Data and Database Objects
sp_changemergepublication (Transact-SQL) sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL) sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL) sp_helpmergepublication (Transact-SQL)
Procédures stockées de réplication (Transact-SQL)Replication Stored Procedures (Transact-SQL)