sp_addmergepublication (Transact-SQL)

Crea una publicación de combinación nueva. Este procedimiento almacenado se ejecuta en el publicador de la base de datos que se publica.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [ @publication = ] 'publication'
    Es el nombre de la publicación de combinación que se va a crear. publication es de tipo sysname, no tiene valor predeterminado y no debe ser la palabra clave ALL. El nombre de la publicación debe ser único en la base de datos.

  • [ @description = ] 'description'
    Es la descripción de la publicación. description es de tipo nvarchar(255) y su valor predeterminado es NULL.

  • [ @retention = ] retention
    Es el período de retención, en unidades de período de retención, durante el cual se guardarán los cambios del elemento publication especificado. retention es de tipo int y su valor predeterminado es 14 unidades. Las unidades del período de retención se definen en retention_period_unit. Si la suscripción no está sincronizada con el período de retención y los cambios pendientes que hubiera recibido se han quitado mediante una operación de limpieza en el distribuidor, la suscripción expira y debe reinicializarse. 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.

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

  • [ @sync_mode = ] 'sync_mode'
    Es el modo de sincronización inicial de los suscriptores a la publicación. sync_mode es de tipo nvarchar(10) y puede tener uno de los siguientes valores.

    Valor

    Descripción

    native (predeterminado)

    Genera la salida de todas las tablas mediante un programa de copia masiva en modo nativo.

    character

    Genera la salida de todas las tablas mediante un programa de copia masiva en modo de caracteres. Es necesario para admitir los suscriptores de Microsoft SQL Server Compact 3.5 SP2 y los suscriptores que no son de SQL Server.

  • [ @allow_push = ] 'allow_push'
    Especifica si es posible crear suscripciones de inserción en la publicación indicada. allow_push es de tipo nvarchar(5) y su valor predeterminado es TRUE, que permite suscripciones de inserción en la publicación.

  • [ @allow_pull = ] 'allow_pull'
    Especifica si es posible crear suscripciones de extracción en la publicación indicada. allow_pull es de tipo nvarchar(5) y su valor predeterminado es TRUE, que permite suscripciones de extracción en la publicación. Debe especificarse True para que se admitan los suscriptores de SQL Server Compact 3.5 SP2.

  • [ @allow_anonymous = ] 'allow_anonymous'
    Especifica si es posible crear suscripciones anónimas en la publicación indicada. allow_anonymous es de tipo nvarchar(5) y su valor predeterminado es TRUE, que permite las suscripciones anónimas en la publicación. Para admitir suscriptores de SQL Server Compact 3.5 SP2, es necesario especificar true.

  • [ @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. enabled_for_internet es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es true, los archivos de sincronización de la publicación se colocan en el directorio C:\Archivos de programa\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp. El usuario debe crear el directorio Ftp. Si es false, la publicación no está habilitada para el acceso a Internet.

  • [ @centralized_conflicts =] 'centralized_conflicts'
    Este parámetro ha quedado obsoleto y solamente se admite por compatibilidad con versiones anteriores de scripts. Use conflict_logging para especificar la ubicación donde se almacenan los registros de conflictos.

  • [ @dynamic_filters =] 'dynamic_filters'
    Permite que la publicación de combinación use filtros de fila con parámetros. dynamic_filters es de tipo nvarchar(5) y su valor predeterminado es FALSE.

    Nota

    No se recomienda especificar este parámetro; es mejor que SQL Server determine de forma automática si se están utilizando filtros de fila con parámetros. Si se especifica el valor true para dynamic_filters, debe definirse un filtro de fila con parámetros para el artículo. Para obtener más información, vea Cómo definir y modificar un filtro de fila con parámetros para un artículo de mezcla (programación de la replicación con Transact-SQL).

  • [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
    Especifica si los archivos de instantánea se almacenan en la carpeta predeterminada. snapshot_in_default_folder es de tipo nvarchar(5) y su valor predeterminado es TRUE. Si el valor es true, los archivos de instantánea se encuentran en la carpeta predeterminada. Si el valor es false, los archivos de instantánea se almacenan en la ubicación alternativa especificada por 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). 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. Observe que este parámetro puede ser True y aún así tener una ubicación especificada en 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.

  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    Especifica la ubicación de la carpeta alternativa para la instantánea. alternate_snapshot_folder es de tipo nvarchar(255) y su valor predeterminado es NULL.

  • [ @pre_snapshot_script = ] 'pre_snapshot_script'
    Especifica un puntero a una ubicación de archivos .sql. pre_snapshot_script es de tipo nvarchar(255) y su valor predeterminado es 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. 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. Los scripts previos a la instantánea no se ejecutan en los suscriptores de SQL Server Compact 3.5 SP2.

  • [ @post_snapshot_script = ] 'post_snapshot_script'
    Especifica un puntero a una ubicación de archivos .sql. post_snapshot_script es de tipo nvarchar(255) y su valor predeterminado es 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. 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. Los scripts posteriores a la instantánea no se ejecutan en los suscriptores de SQL Server Compact 3.5 SP2.

  • [ @compress_snapshot = ] 'compress_snapshot'
    Especifica que la instantánea escrita en la ubicación @alt_snapshot_folder se va a comprimir con el formato CAB de Microsoft. compress_snapshot es de tipo nvarchar(5) y su valor predeterminado es FALSE. false especifica que la instantánea no se comprimirá; true especifica que se comprimirá. No se pueden comprimir archivos de instantáneas superiores a 2 GB. 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. La instantánea de la carpeta predeterminada no se puede comprimir. Para admitir suscriptores de SQL Server Compact 3.5 SP2, es necesario especificar false.

  • [ @ftp_address = ] 'ftp_address'
    Es la dirección de red del servicio FTP del distribuidor. ftp_address es de tipo sysname y su valor predeterminado es NULL. 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. Puesto que esta propiedad se almacena para cada publicación, cada publicación puede tener un parámetro ftp_address diferente. La publicación debe ser compatible con la propagación de instantáneas mediante FTP.

  • [ @ftp_port= ] ftp_port
    Es el número de puerto del servicio FTP del distribuidor. ftp_port es de tipo int con un valor predeterminado de 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. Puesto que esta propiedad se almacena para todas las publicaciones, cada publicación puede tener un valor de ftp_port propio.

  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    Especifica dónde estarán disponibles los archivos de instantánea para que los recoja el Agente de mezcla del suscriptor si la publicación admite la propagación de instantáneas mediante FTP. ftp_subdirectory es de tipo nvarchar(255) y su valor predeterminado es 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.

    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. La estructura de directorios para las instantáneas generadas previamente mediante FTP debe ser la siguiente:

    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.

  • [ @ftp_login = ] 'ftp_login'
    Es el nombre de usuario que se usa para conectarse al servicio FTP. ftp_login es de tipo sysname y su valor predeterminado es 'anonymous'.

  • [ @ftp_password = ] 'ftp_password'
    Es la contraseña de usuario que se utiliza para conectarse al servicio FTP. ftp_password es de tipo sysname y su valor predeterminado es NULL.

    Nota de seguridadNota de seguridad

    No utilice una contraseña en blanco. Utilice una contraseña segura.

  • [ @conflict_retention = ] conflict_retention
    Especifica el período de retención, expresado en días, durante el cual se retienen los conflictos. conflict_retention es de tipo int y su valor predeterminado es 14 días antes de que se purgue la fila que corresponde al conflicto en la tabla de conflictos.

  • [ @keep_partition_changes = ] 'keep_partition_changes'
    Especifica si se pueden habilitar las optimizaciones de los cambios en las particiones cuando no se pueden usar particiones precalculadas. keep_partition_changes es de tipo nvarchar(5) y su valor predeterminado es TRUE. false indica que los cambios de las particiones no se optimizan y que, cuando no se usan particiones precalculadas y se producen cambios en los datos de una partición, se comprueban las particiones enviadas a todos los suscriptores. true indica que se optimizan los cambios en las particiones y que solo se verán afectados los suscriptores con filas en las particiones modificadas. Si usa particiones precalculadas, establezca use_partition_groups en true y keep_partition_changes en false. Para obtener más información, vea Optimizar el rendimiento de los filtros con parámetros con particiones precalculadas.

    Nota

    Si especifica un valor de true en keep_partition_changes, especifique un valor de 1 en el parámetro -MaxNetworkOptimization del Agente de instantáneas. Para obtener más información acerca de este parámetro, vea Agente de instantáneas de replicación. Para obtener información acerca de cómo especificar parámetros de agente, vea Administrar agentes de replicación.

    Con los suscriptores de SQL Server Compact 3.5 SP2, keep_partition_changes debe estar establecido en true para asegurarse de que las eliminaciones se propagan correctamente. Cuando está establecido en false, el suscriptor podría tener más filas de las esperadas.

  • [ @allow_subscription_copy= ] 'allow_subscription_copy'
    Habilita o deshabilita la funcionalidad de copia de las bases de datos de suscripciones que se suscriben a esta publicación. allow_subscription_copy es de tipo nvarchar(5) y su valor predeterminado es FALSE. El tamaño de la base de datos de suscripciones que se va a copiar debe ser inferior a 2 GB.

  • [ @allow_synctoalternate = ] 'allow_synctoalternate'
    Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

  • [ @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. validate_subscriber_info es de tipo nvarchar(500) y su valor predeterminado es NULL. El Agente de mezcla utiliza esta información para validar la partición del suscriptor. Por ejemplo, si se utiliza SUSER_SNAME en el filtro de fila con parámetros, el parámetro debe ser @validate_subscriber_info=N'SUSER_SNAME()'.

    Nota

    No se recomienda especificar este parámetro; es mejor que SQL Server determine de forma automática el criterio de filtrado.

  • [ @add_to_active_directory = ] 'add_to_active_directory'
    Este parámetro ha quedado obsoleto y solamente se admite por compatibilidad con versiones anteriores de scripts. Ya no se puede agregar información de publicación a Microsoft Active Directory.

  • [ @max_concurrent_merge = ] maximum_concurrent_merge
    El número máximo de procesos de mezcla simultáneos. maximum_concurrent_merge es de tipo int con un valor predeterminado de 0. El valor 0 en esta propiedad significa que no hay límite en el número de procesos de mezcla simultáneos que se ejecutan en un momento determinado. 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. 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.

  • [ @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. maximum_concurrent_dynamic_snapshots es de tipo int y su valor predeterminado es 0. Si el valor es 0, no hay ningún límite en el número de sesiones de instantánea. 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.

  • [ @use_partition_groups = ] 'use_partition_groups'
    Especifica que se deben usar particiones precalculadas para optimizar el proceso de sincronización. use_partition_groups es de tipo nvarchar(5) y puede tener uno de los valores siguientes:

    Valor

    Descripción

    true

    La publicación utiliza particiones precalculadas.

    false

    La publicación no utiliza particiones precalculadas.

    NULL (predeterminado)

    El sistema decide la estrategia de partición.

    Las particiones precalculadas se utilizan de manera predeterminada. Para evitar el uso de particiones precalculadas, use_partition_groups se debe establecer en false. Si es NULL, el sistema decidirá si se pueden utilizar. Si no se pueden usar particiones precalculadas, este valor se convierte en false sin generar errores. En casos como éste, keep_partition_changes se puede establecer en true para proporcionar alguna optimización. Para obtener más información, vea Filtros de fila con parámetros y Optimizar el rendimiento de los filtros con parámetros con particiones precalculadas.

  • [ @publication_compatibility_level = ] backward_comp_level
    Indica la compatibilidad de la publicación con versiones anteriores. backward_comp_level es de tipo nvarchar(6) y puede tener uno de estos valores:

    Valor

    Versión

    70RTM

    SQL Server 7.0

    70SP1

    SQL Server 7.0 Service Pack 1

    70SP2

    SQL Server 7.0 Service Pack 2

    70SP3

    SQL Server 7.0 Service Pack 3

    70SP4

    SQL Server 7.0 Service Pack 4

    80RTM

    SQL Server 2000

    80SP1

    SQL Server 2000 Service Pack 1

    80SP2

    SQL Server 2000 Service Pack 2

    80SP3

    SQL Server 2000 Service Pack 3

    90RTM

    SQL Server 2005

    100RTM

    SQL Server 2008

  • [ @replicate_ddl = ] replicate_ddl
    Indica si se admite la replicación de esquemas para la publicación. replicate_ddl es de tipo int y su valor predeterminado es 1. 1 indica que las instrucciones de lenguaje de definición de datos (DDL) ejecutadas en el publicador se replican, y 0 indica que las instrucciones DDL no se replican. Para obtener más información, vea Realizar cambios de esquema en las bases de datos de publicación.

    El parámetro @replicate_ddl se acepta cuando una instrucción DDL agrega una columna. El parámetro @replicate_ddl se omite cuando una instrucción DDL modifica o quita una columna por los motivos siguientes.

    • Cuando se quita una columna, sysarticlecolumns debe actualizarse para evitar que se incluyan nuevas instrucciones DML en la columna borrada, lo que causaría un error en el agente de distribución. El parámetro @replicate_ddl se omite porque la replicación siempre replica el cambio de esquema.

    • Cuando se modifica una columna, podría haberse cambiado el tipo de datos de origen o la nulabilidad, lo que causaría que las instrucciones DML contuvieran un valor que podría no ser compatible con la tabla en el suscriptor. Estas instrucciones DML pueden provocar un error en el agente de distribución. El parámetro @replicate_ddl se omite porque la replicación siempre replica el cambio de esquema.

    • Cuando una instrucción DDL agrega una nueva columna, sysarticlecolumns no incluye la nueva columna. Las instrucciones DML no intentarán replicar los datos de la nueva columna. El parámetro se acepta porque se acepta tanto replicar como no replicar la instrucción DDL.

  • [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot'
    Indica si los suscriptores a esta publicación pueden iniciar el proceso de instantáneas para generar la instantánea filtrada de su partición de datos. allow_subscriber_initiated_snapshot es de tipo nvarchar(5) y su valor predeterminado es FALSE. true indica que los suscriptores pueden iniciar el proceso de instantáneas.

  • [ @allow_web_synchronization = ] 'allow_web_synchronization'
    Especifica si la publicación está habilitada para la sincronización web. allow_web_synchronization es de tipo nvarchar(5) y su valor predeterminado es FALSE. true especifica que las suscripciones a esta publicación se pueden sincronizar a través de HTTPS. Para obtener más información, vea Sincronización Web para la replicación de mezcla. Para admitir suscriptores de SQL Server Compact 3.5 SP2, es necesario especificar true.

  • [ @web_synchronization_url= ] 'web_synchronization_url'
    Especifica el valor predeterminado de la dirección URL de Internet que se usa para la sincronización web. web_synchronization_url i es de tipo nvarchar(500) y su valor predeterminado es NULL. Define la dirección URL de Internet predeterminada si no se establece ninguna de manera explícita al ejecutar sp_addmergepullsubscription_agent.

  • [ @allow_partition_realignment = ] 'allow_partition_realignment'
    Determina si las eliminaciones se deben enviar al suscriptor cuando la modificación de la fila en el publicador hace que cambie su partición. allow_partition_realignment es de tipo nvarchar(5) y su valor predeterminado es TRUE. true envía las eliminaciones al suscriptor para reflejar los resultados de un cambio en la partición, quitando los datos que ya no son parte de la partición del suscriptor. false mantiene los datos de una partición antigua en el suscriptor; en este caso, los cambios realizados en dichos datos en el publicador no se replicarán al suscriptor, pero los cambios efectuados en el suscriptor se replicarán al publicador. El valor false en allow_partition_realignment sirve para conservar los datos de una partición antigua en una suscripción cuando es necesario tener acceso a ellos con fines históricos.

    Nota

    Los datos que permanecen en el suscriptor como resultado de establecer allow_partition_realignment en false deberían tratarse como si fueran de solo lectura; no obstante, el sistema de replicación no aplica esta norma de forma estricta.

  • [ @retention_period_unit = ] 'retention_period_unit'
    Especifica las unidades del período de retención que establece retention. retention_period_unit es de tipo nvarchar(10) y puede tener uno de los valores siguientes.

    Valor

    Versión

    day (predeterminado)

    El período de retención se especifica en días.

    week

    El período de retención se especifica en semanas.

    month

    El período de retención se especifica en meses.

    year

    El período de retención se especifica en años.

  • [ @generation_leveling_threshold= ] generation_leveling_threshold
    Especifica el número de cambios contenidos en una generación. Una generación es un conjunto de cambios que se entregan a un publicador o a un suscriptor. generation_leveling_threshold es de tipo int, con un valor predeterminado de 1000. Para obtener más información, vea Cómo se realiza el seguimiento y la enumeración de los cambios en la réplica de mezcla.

  • [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
    Especifica si deben cargarse los cambios desde el suscriptor antes de que se produzca una reinicialización automática debido a un cambio en la publicación, en que se ha especificado 1 para @force_reinit_subscription. automatic_reinitialization_policy es de tipo bit y su valor predeterminado es 0. 1 indica que se cargan los cambios desde el suscriptor antes de que se produzca una reinicialización automática.

    Nota importanteImportante

    Si agrega, quita o cambia un filtro con parámetros, los cambios pendientes en el suscriptor no se pueden cargar en el publicador durante la reinicialización. Si desea cargar los cambios pendientes, sincronice todas las suscripciones antes de cambiar el filtro.

  • [ @conflict_logging = ] 'conflict_logging'
    Especifica dónde se almacenan los registros de conflictos. conflict_logging es de tipo nvarchar(15) y puede tener uno de los valores siguientes:

    Valor

    Descripción

    publisher

    Los registros de conflictos se almacenan en el publicador.

    subscriber

    Los registros de conflictos se almacenan en el suscriptor que causó el conflicto. No se admite en suscriptores de SQL Server Compact 3.5 SP2.

    both

    Los registros de conflictos se almacenan en el publicador y en el suscriptor.

    NULL (predeterminado)

    La replicación establece automáticamente conflict_logging en both cuando el valor backward_comp_level es 90RTM y en publisher en todos los demás casos.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

sp_addmergepublication se utiliza en la replicación de mezcla.

Para enumerar los objetos de publicación en Active Directory mediante el parámetro @add_to_active_directory, es necesario que el objeto de SQL Server se haya creado previamente en Active Directory.

Si existen varias publicaciones que publiquen el mismo objeto de base de datos, solamente las publicaciones con el valor 1 en el parámetro replicate_ddl replicarán las instrucciones ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION y ALTER TRIGGER de DDL. Sin embargo, todas las publicaciones que publiquen la columna quitada replicarán una instrucción ALTER TABLE DROP COLUMN de DDL.

En suscriptores de SQL Server Compact 3.5 SP2, el valor de alternate_snapshot_folder solamente se usa si el valor de snapshot_in_default_folder es false.

Con la replicación DDL habilitada (replicate_ddl**=1**) para una publicación, con el fin de poder hacer cambios sin replicación DDL en la publicación, primero se debe ejecutar sp_changemergepublication (Transact-SQL) para establecer replicate_ddl en 0. Una vez emitidas las instrucciones DDL que no se replican, sp_changemergepublication puede ejecutarse de nuevo para volver a activar la replicación DDL.

Ejemplo

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

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

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

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

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

Permisos

Solo los miembros del rol fijo de servidor sysadmin o del rol fijo de base de datos db_owner pueden ejecutar sp_addmergepublication.