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

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Crea una publicación de combinación nueva.Creates a new merge publication. Este procedimiento almacenado se ejecuta en el publicador de la base de datos que se publica.This stored procedure is executed at the Publisher on the database that is being published.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax


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

ArgumentosArguments

[ @publication = ] 'publicación'[ @publication = ] 'publication'
Es el nombre de la publicación de mezcla que se va a crear.Is the name of the merge publication to create. publicación es sysname, no tiene ningún valor predeterminado y debe no ser la palabra clave todos.publication is sysname, with no default, and must not be the keyword ALL. El nombre de la publicación debe ser único en la base de datos.The name of the publication must be unique within the database.

[ @description = ] 'descripción'[ @description = ] 'description'
Es la descripción de la publicación.Is the publication description. descripción es nvarchar (255), su valor predeterminado es null.description is nvarchar(255), with a default of NULL.

[ @retention = ] retención[ @retention = ] retention
Es el período de retención, en retención unidades de período, para el que desea guardar los cambios para la dada publicación.Is the retention period, in retention period units, for which to save changes for the given publication. retención es int, su valor predeterminado es 14 unidades.retention is int, with a default of 14 units. Unidades del período de retención se definen mediante retention_period_unit.Retention period units are defined by retention_period_unit. Si la suscripción no está sincronizada en el período de retención y se han quitado, por medio de una operación de limpieza en el distribuidor, los cambios pendientes que podía haber recibido, la suscripción expira y es necesario reinicializarla.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. El período de retención máximo permitido es el número de días comprendido entre el 31 de diciembre de 9999 y la fecha actual.The maximum allowable retention period is the number of days between Dec. 31, 9999 and the current date.

Nota

El período de retención para las publicaciones de combinación tiene un plazo de gracia de 24 horas para adaptarse a los suscriptores de las diferentes zonas horarias.The retention period for merge publications has a 24 hour grace period to accommodate Subscribers in different time zones. Si, por ejemplo, se establece un período de retención de un día, el período de retención real será de 48 horas.If, for example, you set a retention period of one day, the actual retention period is 48 hours.

[ @sync_mode = ] 'sync_mode'[ @sync_mode = ] 'sync_mode'
Es el modo de la sincronización inicial de suscriptores con la publicación.Is the mode of the initial synchronization of subscribers to the publication. sync_mode es nvarchar (10), y puede tener uno de los siguientes valores.sync_mode is nvarchar(10), and can be one of the following values.

ValueValue DescriptionDescription
Native (valor predeterminado)native (default) Genera la salida de todas las tablas mediante un programa de copia masiva en modo nativo.Produces native-mode bulk copy program output of all tables.
caráctercharacter Genera la salida de todas las tablas mediante un programa de copia masiva en modo de caracteres.Produces character-mode bulk copy program output of all tables. Debe admitir MicrosoftMicrosoft SQL Server CompactSQL Server Compact y no- SQL ServerSQL Server los suscriptores.Required to support MicrosoftMicrosoft SQL Server CompactSQL Server Compact and non- SQL ServerSQL Server Subscribers.

[ @allow_push = ] 'allow_push'[ @allow_push = ] 'allow_push'
Especifica si es posible crear suscripciones de inserción para la publicación indicada.Specifies if push subscriptions can be created for the given publication. allow_push es nvarchar (5), su valor predeterminado es TRUE, que permite suscripciones de inserción en la publicación.allow_push is nvarchar(5), with a default of TRUE, which allows push subscriptions on the publication.

[ @allow_pull = ] 'allow_pull'[ @allow_pull = ] 'allow_pull'
Especifica si es posible crear suscripciones de extracción para la publicación indicada.Specifies if pull subscriptions can be created for the given publication. allow_pull es nvarchar (5), su valor predeterminado es TRUE, que permite suscripciones de extracción en la publicación.allow_pull is nvarchar(5), with a default of TRUE, which allows pull subscriptions on the publication. Debe especificar True para compatibilidad con SQL Server CompactSQL Server Compact los suscriptores.You must specify true to support SQL Server CompactSQL Server Compact Subscribers.

[ @allow_anonymous = ] 'allow_anonymous'[ @allow_anonymous = ] 'allow_anonymous'
Especifica si es posible crear suscripciones anónimas para la publicación indicada.Specifies if anonymous subscriptions can be created for the given publication. allow_anonymous es nvarchar (5), su valor predeterminado es TRUE, que permite suscripciones anónimas en la publicación.allow_anonymous is nvarchar(5), with a default of TRUE, which allows anonymous subscriptions on the publication. Para admitir SQL Server CompactSQL Server Compact suscriptores, debe especificar true.To support SQL Server CompactSQL Server Compact Subscribers, you must specify true.

[ @enabled_for_internet = ] 'enabled_for_internet'[ @enabled_for_internet = ] 'enabled_for_internet'
Especifica si la publicación está habilitada para Internet y determina si se puede utilizar el protocolo de transferencia de archivos (FTP) para transferir los archivos de instantánea a un suscriptor.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 es nvarchar (5), con un valor predeterminado es FALSE.enabled_for_internet is nvarchar(5), with a default of FALSE. Si true, los archivos de sincronización para la publicación se colocan en el directorio 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. El usuario debe crear el directorio Ftp.The user must create the Ftp directory. Si false, la publicación no está habilitada para el acceso a Internet.If false, the publication is not enabled for Internet access.

[ @centralized_conflicts =] 'centralized_conflicts'[ @centralized_conflicts =] 'centralized_conflicts'
Este parámetro ha quedado desusado y solo se admite para la compatibilidad de scripts con versiones anteriores.This parameter has been deprecated and is only supported for the backward compatibility of scripts. Use conflict_logging para especificar la ubicación donde se almacenan los registros de conflictos.Use conflict_logging to specify the location where conflict records are stored.

[ @dynamic_filters =] 'dynamic_filters'[ @dynamic_filters =] 'dynamic_filters'
Permite que la publicación de mezcla use filtros de filas con parámetros.Enables the merge publication to use parameterized row filters. dynamic_filters es nvarchar (5), con un valor predeterminado es FALSE.dynamic_filters is nvarchar(5), with a default of FALSE.

Nota

No se recomienda especificar este parámetro; es mejor que SQL ServerSQL Server determine de forma automática si se están utilizando filtros de fila con parámetros.You should not specify this parameter but instead allow SQL ServerSQL Server to automatically determine if parameterized row filters are being used. Si especifica un valor de true para dynamic_filters, debe definir un filtro de fila con parámetros para el artículo.If you specify a value of true for dynamic_filters, you must define a parameterized row filter for the article. Para más información, consulte Definir y modificar un filtro de fila con parámetros para un artículo de mezcla.For more information, see Define and Modify a Parameterized Row Filter for a Merge Article.

[ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'[ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
Especifica si los archivos de instantáneas se almacenan en la carpeta predeterminada.Specifies if the snapshot files are stored in the default folder. snapshot_in_default_folder es nvarchar (5), con un valor predeterminado es TRUE.snapshot_in_default_folder is nvarchar(5), with a default of TRUE. Si true, archivos de instantáneas se pueden encontrar en la carpeta predeterminada.If true, snapshot files can be found in the default folder. Si false, archivos de instantáneas se almacenarán en la ubicación alternativa especificada por alternate_snapshot_folder.If false, snapshot files will be stored in the alternate location specified by alternate_snapshot_folder. Las ubicaciones alternativas pueden encontrarse en otro servidor, en una unidad de red o en medios extraíbles (como CD-ROM o discos extraíbles).Alternate locations can be on another server, on a network drive, or on a removable media (such as CD-ROM or removable disks). También puede guardar los archivos de instantáneas en un sitio FTP (Protocolo de transferencia de archivos), para que el suscriptor los recupere más tarde.You can also save the snapshot files to a File Transfer Protocol (FTP) site, for retrieval by the Subscriber at a later time. Tenga en cuenta que este parámetro puede ser true y seguir teniendo una ubicación especificada por alt_snapshot_folder.Note that this parameter can be true and still have a location specified by alt_snapshot_folder. Esta combinación especifica que los archivos de instantáneas se almacenarán tanto en la ubicación predeterminada como en la alternativa.This combination specifies that the snapshot files will be stored in both the default and alternate locations.

[ @alt_snapshot_folder = ] 'alternate_snapshot_folder'[ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
Especifica la ubicación de la carpeta alternativa de la instantánea.Specifies the location of the alternate folder for the snapshot. alternate_snapshot_folder es nvarchar (255), su valor predeterminado es null.alternate_snapshot_folder is nvarchar(255), with a default of NULL.

[ @pre_snapshot_script = ] 'pre_snapshot_script'[ @pre_snapshot_script = ] 'pre_snapshot_script'
Especifica un puntero a un .sql ubicación del archivo.Specifies a pointer to an .sql file location. pre_snapshot_script es nvarchar (255), su valor predeterminado es null.pre_snapshot_script is nvarchar(255), with a default of NULL. El Agente de mezcla ejecutará el script previo a la instantánea antes que cualquiera de los scripts de objetos replicados al aplicar la instantánea en un suscriptor.The Merge Agent will run the pre-snapshot script before any of the replicated object scripts when applying the snapshot at a Subscriber. El script se ejecuta en el contexto de seguridad utilizado por el Agente de mezcla durante la conexión con la base de datos de suscripciones.The script is executed in the security context used by the Merge Agent when connecting to the subscription database. Las secuencias de comandos anterior a la instantánea no se ejecutan en SQL Server CompactSQL Server Compact los suscriptores.Pre-snapshot scripts are not run on SQL Server CompactSQL Server Compact Subscribers.

[ @post_snapshot_script = ] 'post_snapshot_script'[ @post_snapshot_script = ] 'post_snapshot_script'
Especifica un puntero a un .sql ubicación del archivo.Specifies a pointer to an .sql file location. post_snapshot_script es nvarchar (255), su valor predeterminado es null.post_snapshot_script is nvarchar(255), with a default of NULL. El Agente de mezcla ejecutará el script posterior a la instantánea después de que se apliquen los demás scripts y datos de objetos replicados durante una sincronización inicial.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. El script se ejecuta en el contexto de seguridad utilizado por el Agente de mezcla durante la conexión con la base de datos de suscripciones.The script is executed in the security context used by the Merge Agent when connecting to the subscription database. Las secuencias de comandos posterior a la instantánea no se ejecutan en SQL Server CompactSQL Server Compact los suscriptores.Post-snapshot scripts are not run on SQL Server CompactSQL Server Compact Subscribers.

[ @compress_snapshot = ] 'compress_snapshot'[ @compress_snapshot = ] 'compress_snapshot'
Especifica que la instantánea escrita en la @alt_snapshot_folder ubicación está comprimida en el MicrosoftMicrosoft formato CAB.Specifies that the snapshot written to the @alt_snapshot_folder location is to be compressed into the MicrosoftMicrosoft CAB format. compress_snapshot es nvarchar (5), con un valor predeterminado es FALSE.compress_snapshot is nvarchar(5), with a default of FALSE. false especifica que no se comprimirá la instantánea; true especifica que se comprimirá la instantánea.false specifies that the snapshot will not be compressed; true specifies that the snapshot is to be compressed. No se pueden comprimir archivos de instantáneas superiores a 2 GB.Snapshot files that are larger than 2GB cannot be compressed. Los archivos de instantáneas comprimidos se descomprimen en la ubicación en la que se ejecuta el Agente de mezcla; normalmente, se utilizan suscripciones de extracción con las instantáneas comprimidas para descomprimir los archivos en el suscriptor.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. La instantánea de la carpeta predeterminada no se puede comprimir.The snapshot in the default folder cannot be compressed. Para admitir SQL Server CompactSQL Server Compact suscriptores, debe especificar false.To support SQL Server CompactSQL Server Compact Subscribers, you must specify false.

[ @ftp_address = ] 'ftp_address'[ @ftp_address = ] 'ftp_address'
Es la dirección de red del servicio FTP para el distribuidor.Is the network address of the FTP service for the Distributor. ftp_address es sysname, su valor predeterminado es null.ftp_address is sysname, with a default of NULL. Especifica dónde se encuentran el agente de mezcla de un suscriptor para recoger los archivos de instantáneas de publicación.Specifies where publication snapshot files are located for the Merge Agent of a subscriber to pick up. Puesto que esta propiedad se almacena para todas las publicaciones, cada publicación puede tener diferentes ftp_address.Since this property is stored for each publication, each publication can have a different ftp_address. La publicación debe ser compatible con la propagación de instantáneas mediante FTP.The publication must support propagating snapshots using FTP.

[ @ftp_port= ] ftp_port[ @ftp_port= ] ftp_port
Es el número de puerto del servicio FTP para el distribuidor.Is the port number of the FTP service for the Distributor. ftp_port es int, su valor predeterminado es 21.ftp_port is int, with a default of 21. Especifica dónde se encuentran los archivos de instantánea de la publicación para que los recoja el Agente de mezcla de un suscriptor.Specifies where the publication snapshot files are located for the Merge Agent of a subscriber to pick up. Puesto que esta propiedad se almacena para todas las publicaciones, cada publicación puede tener su propio ftp_port.Since this property is stored for each publication, each publication can have its own ftp_port.

[ @ftp_subdirectory = ] 'ftp_subdirectory'[ @ftp_subdirectory = ] 'ftp_subdirectory'
Especifica dónde estarán disponibles los archivos de instantánea para que los recupere el Agente de mezcla del suscriptor si la publicación admite la propagación de instantáneas mediante FTP.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 es nvarchar (255), su valor predeterminado es null.ftp_subdirectory is nvarchar(255), with a default of NULL. Puesto que esta propiedad se almacena para todas las publicaciones, cada publicación puede tener su propio ftp_subdirctory o elegir no tener subdirectorio, indicándolo con un valor 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.

En la generación previa de instantáneas para publicaciones con filtros con parámetros, la instantánea de datos de cada partición del suscriptor debe estar en su propia carpeta.When pre-generating snapshots for publications with parameterized filters, the data snapshot for each Subscriber partition needs to be in its own folder. La estructura de directorios para las instantáneas generadas previamente mediante FTP debe ser la siguiente:The directory structure for pre-generated snapshots using FTP must obey the following structure:

alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.

Nota

Los valores indicados en cursiva dependen de la configuración específica de la publicación y partición del suscriptor.The values above in italics will depend on the specifics of the publication and Subscriber partition.

[ @ftp_login = ] 'ftp_login'[ @ftp_login = ] 'ftp_login'
Es el nombre de usuario que se utiliza para conectar con el servicio FTP.Is the username used to connect to the FTP service. ftp_login es sysname, su valor predeterminado es 'anonymous'.ftp_login is sysname, with a default of 'anonymous'.

[ @ftp_password = ] 'ftp_password'[ @ftp_password = ] 'ftp_password'
Es la contraseña del usuario que se utiliza para conectarse al servicio FTP.Is the user password used to connect to the FTP service. ftp_password es sysname, su valor predeterminado es null.ftp_password is sysname, with a default of NULL.

Importante

No utilice una contraseña en blanco.Do not use a blank password. Utilice una contraseña segura.Use a strong password.

[ @conflict_retention = ] conflict_retention[ @conflict_retention = ] conflict_retention
Especifica el período de retención, expresado en días, durante el que se conservan los conflictos.Specifies the retention period, in days, for which conflicts are retained. conflict_retention es int, con un valor predeterminado de 14 días antes el conflicto se purga fila de la tabla de conflictos.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'[ @keep_partition_changes = ] 'keep_partition_changes'
Especifica si se permiten optimizaciones de cambio de particiones cuando no se pueden usar las particiones precalculadas.Specifies whether to enable partition change optimizations when precomputed partitions cannot be used. keep_partition_changes es nvarchar (5), con un valor predeterminado es TRUE.keep_partition_changes is nvarchar(5), with a default of TRUE. false significa que las particiones de los cambios no se optimiza y cuando no se utilizan particiones precalculadas, las particiones enviadas a todos los suscriptores se comprobarán cuando cambian los datos de una partición.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 significa que los cambios de partición se optimiza y solo los suscriptores que tienen filas en las particiones modificadas se ven afectados.true means that partition changes are optimized, and only Subscribers having rows in the changed partitions are affected. Al utilizar particiones precalculadas, establezca use_partition_groups a true y establecer keep_partition_changes a false.When using precomputed partitions, set use_partition_groups to true and set keep_partition_changes to false. Para obtener más información, vea Optimizar el rendimiento de los filtros con parámetros con particiones calculadas previamente.For more information, see Optimize Parameterized Filter Performance with Precomputed Partitions.

Nota

Si especifica un valor de true para keep_partition_changes, especifique un valor de 1 para el parámetro de agente de instantáneas - MaxNetworkOptimization .If you specify a value of true for keep_partition_changes, specify a value of 1 for the Snapshot Agent parameter -MaxNetworkOptimization. Para obtener más información acerca de este parámetro, vea Replication Snapshot Agent.For more information about this parameter, see Replication Snapshot Agent. Para obtener información acerca de cómo especificar parámetros de agente, vea administración del agente de replicación.For information about how to specify agent parameters, see Replication Agent Administration.

Con SQL Server CompactSQL Server Compact suscriptores, keep_partition_changes debe establecerse en true para asegurarse de que las eliminaciones se propagan correctamente.With SQL Server CompactSQL Server Compact subscribers, keep_partition_changes must be set to true to ensure that deletes are correctly propagated. Si se establece en false, el suscriptor puede tener más filas de las esperadas.When set to false, the subscriber might have more rows than expected.

[ @allow_subscription_copy= ] 'allow_subscription_copy'[ @allow_subscription_copy= ] 'allow_subscription_copy'
Habilita o deshabilita la funcionalidad de copia de las bases de datos de suscripciones suscritas a esta publicación.Enables or disables the ability to copy the subscription databases that subscribe to this publication. allow_subscription_copy es nvarchar (5), con un valor predeterminado es FALSE.allow_subscription_copy is nvarchar(5), with a default of FALSE. El tamaño de la base de datos de suscripciones que se va a copiar debe ser inferior a 2 gigabytes (GB).The size of the subscription database being copied must be less than 2 gigabytes (GB).

[ @allow_synctoalternate = ] 'allow_synctoalternate'[ @allow_synctoalternate = ] 'allow_synctoalternate'
Solamente se identifica con fines informativos.Identified for informational purposes only. No compatible.Not supported. La compatibilidad con versiones posteriores no está garantizada.Future compatibility is not guaranteed.

[ @validate_subscriber_info = ] 'validate_subscriber_info'[ @validate_subscriber_info = ] 'validate_subscriber_info'
Muestra las funciones que se usan para definir una partición de suscriptor de los datos publicados cuando se usan filtros de fila con parámetros.Lists the functions that are used to define a Subscriber partition of the published data when parameterized row filters are used. validate_subscriber_info es nvarchar (500), su valor predeterminado es null.validate_subscriber_info is nvarchar(500), with a default of NULL. El Agente de mezcla utiliza esta información para validar la partición del suscriptor.This information is used by the Merge Agent to validate the Subscriber's partition. Por ejemplo, si SUSER_SNAME se utiliza en el filtro de fila con parámetros, el parámetro debe ser @validate_subscriber_info=N'SUSER_SNAME()'.For example, if SUSER_SNAME is used in the parameterized row filter, the parameter should be @validate_subscriber_info=N'SUSER_SNAME()'.

Nota

No se recomienda especificar este parámetro; es mejor que SQL ServerSQL Server determine de forma automática el criterio de filtrado.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'[ @add_to_active_directory = ] 'add_to_active_directory'
Este parámetro ha quedado desusado y solo se admite para la compatibilidad de scripts con versiones anteriores.This parameter has been deprecated and is only supported for the backward compatibility of scripts. Ya no se puede agregar información de publicación a MicrosoftMicrosoft Active Directory.You can no longer add publication information to the MicrosoftMicrosoft Active Directory.

[ @max_concurrent_merge = ] maximum_concurrent_merge[ @max_concurrent_merge = ] maximum_concurrent_merge
Número máximo de procesos de mezcla simultáneos.The maximum number of concurrent merge processes. maximum_concurrent_merge es int con un valor predeterminado es 0.maximum_concurrent_merge is int with a default of 0. Un valor de 0 para esta propiedad significa que no hay ningún límite en el número de procesos de mezcla simultáneos que se ejecutan en un momento dado.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. Esta propiedad establece un límite para el número de procesos de mezcla simultáneos que se pueden ejecutar con una publicación de combinación en un momento determinado.This property sets a limit on the number of concurrent merge processes that can be run against a merge publication at one time. Si hay más procesos de mezcla programados para ejecutarse simultáneamente de los que permite el valor de esta propiedad, los trabajos restantes se colocan en una cola hasta que finalice el proceso de mezcla que se está ejecutando en ese momento.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_snapshots[ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
Número máximo de sesiones del Agente de instantáneas que se pueden ejecutar simultáneamente para generar instantáneas de datos filtrados en particiones del suscriptor.The maximum number of Snapshot Agent sessions that can be run concurrently to generate filtered data snapshots for Subscriber partitions. maximum_concurrent_dynamic_snapshots es int con un valor predeterminado es 0.maximum_concurrent_dynamic_snapshots is int with a default of 0. Si 0, no hay ningún límite para las sesiones de instantánea número.If 0, there is no limit to the number snapshot sessions. Si hay más procesos de instantánea programados al mismo tiempo que los que permite ejecutar el valor, los trabajos sobrantes se colocarán en una cola y esperarán hasta que finalice el proceso de instantánea que se está ejecutando actualmente.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'[ @use_partition_groups = ] 'use_partition_groups'
Especifica que se deben usar particiones precalculadas para optimizar el proceso de sincronización.Specifies that precomputed partitions should be used to optimize the synchronization process. use_partition_groups es nvarchar (5), y puede tener uno de estos valores:use_partition_groups is nvarchar(5), and can be one of these values:

ValueValue DescriptionDescription
truetrue La publicación utiliza particiones previamente calculadas.Publication uses precomputed partitions.
Falsefalse La publicación no utiliza particiones previamente calculadas.Publication does not use precomputed partitions.
NULL(Default)NULL(default) El sistema decide la estrategia de partición.System decides on the partitioning strategy.

Las particiones precalculadas se utilizan de manera predeterminada.Precomputed partitions are used by default. Para evitar usar particiones precalculadas, use_partition_groups debe establecerse en false.To avoid using precomputed partitions, use_partition_groups must be set to false. Si es NULL, el sistema decidirá si se pueden utilizar.When NULL, the system will decide if precomputed partitions can be used. Si precalculadas particiones no se puede usar, a continuación, este valor se convierte en false sin generar errores.If precomputed partitions cannot be used, then this value will effectively become false without generating any errors. En tales casos, keep_partition_changes se puede establecer en true para proporcionar alguna optimización.In such cases, keep_partition_changes can be set to true to provide some optimization. Para obtener más información, consulte Parameterized Row Filters y optimizar el rendimiento de filtro con parámetros con particiones precalculadas.For more information, see Parameterized Row Filters and Optimize Parameterized Filter Performance with Precomputed Partitions.

[ @publication_compatibility_level = ] backward_comp_level[ @publication_compatibility_level = ] backward_comp_level
Indica la compatibilidad con versiones anteriores de la publicación.Indicates the backward compatibility of the publication. backward_comp_level es nvarchar(6), y puede tener uno de estos valores:backward_comp_level is nvarchar(6), and can be one of these values:

ValueValue VersiónVersion
90RTM90RTM SQL Server 2005SQL Server 2005
100RTM100RTM SQL Server 2008SQL Server 2008

[ @replicate_ddl = ] replicate_ddl[ @replicate_ddl = ] replicate_ddl
Indica si la publicación admite replicación de esquema.Indicates if schema replication is supported for the publication. replicate_ddl es int, su valor predeterminado es 1.replicate_ddl is int, with a default of 1. 1 indica que se replican instrucciones de DDL (lenguaje) de definición de datos ejecutadas en el publicador, y 0 indica que no se replican las instrucciones de DDL.1 indicates that data definition language (DDL) statements executed at the publisher are replicated, and 0 indicates that DDL statements are not replicated. Para más información, vea Make Schema Changes on Publication Databases (Realizar cambios de esquema en bases de datos de publicaciones).For more information, see Make Schema Changes on Publication Databases.

El @replicate_ddl parámetro se observa cuando una instrucción DDL agrega una columna.The @replicate_ddl parameter is honored when a DDL statement adds a column. El @replicate_ddl parámetro se ignora cuando una instrucción DDL modifica o quita una columna por las razones siguientes.The @replicate_ddl parameter is ignored when a DDL statement alters or drops a column for the following reasons.

  • Cuando se quita una columna, sysarticlecolumns debe actualizarse para evitar que las nuevas instrucciones DML incluyan la columna quitada lo que haría que el agente de distribución genere un error.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. El @replicate_ddl parámetro se ignora porque la replicación siempre debe replicar el cambio de esquema.The @replicate_ddl parameter is ignored because replication must always replicate the schema change.

  • Cuando se modifica una columna, es posible que el tipo de datos de origen o la nulabilidad hayan cambiado, lo que hace que las instrucciones DML contengan un valor que quizás no sea compatible con la tabla en el suscriptor.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. Estas instrucciones DML pueden hacer que el agente de distribución genere un error.Such DML statements might cause distribution agent to fail. El @replicate_ddl parámetro se ignora porque la replicación siempre debe replicar el cambio de esquema.The @replicate_ddl parameter is ignored because replication must always replicate the schema change.

  • Cuando una instrucción DDL agrega una nueva columna, sysarticlecolumns no incluye la nueva columna.When a DDL statement adds a new column, sysarticlecolumns does not include the new column. Las instrucciones DML no intentarán replicar datos para la nueva columna.DML statements will not try to replicate data for the new column. Se respeta el parámetro porque la DDL es aceptable se realice o no la replicación.The parameter is honored because either replicating or not replicating the DDL is acceptable.

    [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot'[ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot'
    Indica si los suscriptores de esta publicación pueden iniciar el proceso de instantánea para generar instantáneas filtradas para su partición de datos.Indicates if Subscribers to this publication can initiate the snapshot process to generate the filtered snapshot for their data partition. allow_subscriber_initiated_snapshot es nvarchar (5), con un valor predeterminado es FALSE.allow_subscriber_initiated_snapshot is nvarchar(5), with a default of FALSE. True indica que los suscriptores pueden iniciar el proceso de instantáneas.true indicates that Subscribers can initiate the snapshot process.

    [ @allow_web_synchronization = ] 'allow_web_synchronization'[ @allow_web_synchronization = ] 'allow_web_synchronization'
    Especifica si la publicación se habilita para sincronización web.Specifies if the publication is enabled for Web synchronization. allow_web_synchronization es nvarchar (5), con un valor predeterminado es FALSE.allow_web_synchronization is nvarchar(5), with a default of FALSE. True especifica que se pueden sincronizar las suscripciones a esta publicación a través de HTTPS.true specifies that subscriptions to this publication can be synchronized over HTTPS. Para más información, consulte Web Synchronization for Merge Replication.For more information, see Web Synchronization for Merge Replication. Para admitir SQL Server CompactSQL Server Compact suscriptores, debe especificar true.To support SQL Server CompactSQL Server Compact Subscribers, you must specify true.

    [ @web_synchronization_url= ] 'web_synchronization_url'[ @web_synchronization_url= ] 'web_synchronization_url'
    Especifica el valor predeterminado de la dirección URL de Internet utilizada para la sincronización web.Specifies the default value of the Internet URL used for Web synchronization. web_synchronization_urls nvarchar (500), su valor predeterminado es null.web_synchronization_url is nvarchar(500), with a default of NULL. Define la dirección URL de Internet predeterminada si no establece explícitamente una cuando sp_addmergepullsubscription_agent se ejecuta.Defines the default Internet URL if one is not explicitly set when sp_addmergepullsubscription_agent is executed.

    [ @allow_partition_realignment = ] 'allow_partition_realignment'[ @allow_partition_realignment = ] 'allow_partition_realignment'
    Determina si se envían eliminaciones al suscriptor cuando una modificación de la fila del publicador provoca que se modifique su partición.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 es nvarchar (5), con un valor predeterminado es TRUE.allow_partition_realignment is nvarchar(5), with a default of TRUE. True envía las eliminaciones al suscriptor para reflejar los resultados de un cambio en la partición mediante la eliminación de datos que ya no forma parte de la partición del suscriptor.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 deja los datos de una partición antigua en el suscriptor, donde no se replicarán los cambios realizados en estos datos en el publicador al suscriptor, pero los cambios realizados en el suscriptor se replicarán al publicador.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. Establecer allow_partition_realignment a false se utiliza para conservar los datos de una partición antigua en una suscripción cuando los datos deben ser accesibles para fines históricos.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.

Nota

Datos que permanecen en el suscriptor como resultado de establecer allow_partition_realignment a false deben tratarse como si fueran de solo lectura; sin embargo, esto no se aplica mediante el sistema de replicación.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'[ @retention_period_unit = ] 'retention_period_unit'
Especifica las unidades para el período de retención establecido retención.Specifies the units for the retention period set by retention. retention_period_unit es nvarchar (10), y puede tener uno de los siguientes valores.retention_period_unit is nvarchar(10), and can be one of the following values.

ValueValue VersiónVersion
día (valor predeterminado)day (default) El período de retención se especifica en días.Retention period is specified in days.
weekweek El período de retención se especifica en semanas.Retention period is specified in weeks.
monthmonth El período de retención se especifica en meses.Retention period is specified in months.
yearyear El período de retención se especifica en años.Retention period is specified in years.

[ @generation_leveling_threshold= ] generation_leveling_threshold[ @generation_leveling_threshold= ] generation_leveling_threshold
Especifica el número de cambios que se encuentran en una generación.Specifies the number of changes that are contained in a generation. Una generación es un conjunto de cambios que se entregan a un publicador o suscriptor.A generation is a collection of changes that are delivered to a Publisher or Subscriber. generation_leveling_threshold es int, con un valor predeterminado de 1000.generation_leveling_threshold is int, with a default value of 1000.

[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
Especifica si se cargan cambios desde el suscriptor antes que una reinicialización automática requerido un cambio en la publicación, donde un valor de 1 no se especificó para @force_reinit_subscription.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 es de tipo bit, con un valor predeterminado de 0.automatic_reinitialization_policy is bit, with a default value of 0. 1 significa que los cambios se cargan desde el suscriptor antes de que se produzca una reinicialización automática.1 means that changes are uploaded from the Subscriber before an automatic reinitialization occurs.

Importante

Si se agrega, quita o modifica un filtro con parámetros, los cambios pendientes en el suscriptor no se pueden cargar en el publicador durante la reinicialización.If you add, drop, or change a parameterized filter, pending changes at the Subscriber cannot be uploaded to the Publisher during reinitialization. Si desea cargar los cambios pendientes, sincronice todas las suscripciones antes de cambiar el filtro.If you want to upload pending changes, synchronize all subscriptions before changing the filter.

[ @conflict_logging = ] 'conflict_logging'[ @conflict_logging = ] 'conflict_logging'
Especifica dónde se almacenan los registros conflictivos.Specifies where conflict records are stored. conflict_logging es nvarchar (15), y puede tener uno de los siguientes valores:conflict_logging is nvarchar(15), and can be one of the following values:

ValueValue DescriptionDescription
publicadorpublisher Los registros de conflictos se almacenan en el publicador.Conflict records are stored at the Publisher.
suscriptorsubscriber Los registros de conflictos se almacenan en el suscriptor que causó el conflicto.Conflict records are stored at the Subscriber that caused the conflict. No se admite para SQL Server CompactSQL Server Compact los suscriptores.Not supported for SQL Server CompactSQL Server Compact Subscribers.
ambosboth Los registros de conflictos se almacenan tanto en el publicador como en el suscriptor.Conflict records are stored at both the Publisher and Subscriber.
NULL (predeterminado)NULL (default) La replicación establece automáticamente conflict_logging a ambos cuando el valor backward_comp_level es 90RTM y publisher en todos los demás casos.Replication automatically sets conflict_logging to both when the value backward_comp_level is 90RTM and to publisher in all other cases.

Valores de código de retornoReturn Code Values

0 (correcto) o 1 (error)0 (success) or 1 (failure)

ComentariosRemarks

sp_addmergepublication se utiliza en la replicación de mezcla.sp_addmergepublication is used in merge replication.

Para enumerar los objetos de publicación a Active Directory mediante la @add_to_active_directory parámetro, el SQL ServerSQL Server objeto debe estar ya creado en 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.

Si existen varias publicaciones que publicar el mismo objeto de base de datos, solamente las publicaciones con un replicate_ddl valo 1 replicará ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION y Instrucciones ALTER TRIGGER de 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. Sin embargo, todas las publicaciones que publiquen la columna quitada replicarán una instrucción ALTER TABLE DROP COLUMN de DDL.However, an ALTER TABLE DROP COLUMN DDL statement will be replicated by all publications that are publishing the dropped column.

Para SQL Server CompactSQL Server Compact los suscriptores, el valor de alternate_snapshot_folder solamente se utiliza cuando el valor de snapshot_in_default_folder es 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.

Con la replicación DDL habilitada (* replicate_ddl = 1) para una publicación, con el fin de realizar sin replicación DDL cambios en la publicación, sp_changemergepublication (Transact-SQL) primero debe ejecutar para establecer *replicate_ddl a **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. Una vez que se han ejecutado las instrucciones de DDL sin replicación, sp_changemergepublication puede ejecutarse de nuevo para volver a activar la replicación DDL.After the non-replicating DDL statements have been issued, sp_changemergepublication can be run again to turn DDL replication back on.

EjemploExample

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

PermissionsPermissions

Solo los miembros de la sysadmin rol fijo de servidor o db_owner rol fijo de base de datos puede ejecutar sp_addmergepublication.Only members of the sysadmin fixed server role or db_owner fixed database role can execute sp_addmergepublication.

Vea tambiénSee Also

Create a Publication Create a Publication
Publicar datos y objetos de base de datos 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)
Procedimientos almacenados de replicación (Transact-SQL)Replication Stored Procedures (Transact-SQL)