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.
Convenciones 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 mezcla 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 para el publication correspondiente. 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 periodo 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 la sincronización inicial de suscriptores con la publicación. sync_mode es nvarchar(10), y puede ser 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 y los suscriptores que no son de SQL Server.
[ @allow_push = ] 'allow_push'
Especifica si es posible crear suscripciones de inserción para la publicación indicada. allow_push es de tipo nvarchar(5) y su valor predeterminado es TRUE, lo que permite las suscripciones de inserción en la publicación.[ @allow_pull = ] 'allow_pull'
Especifica si es posible crear suscripciones de extracción para la publicación indicada. allow_pull es de tipo nvarchar(5) y su valor predeterminado es TRUE, lo que permite las suscripciones de extracción en la publicación. Debe especificarse True para que se admitan los suscriptores de SQL Server Compact.[ @allow_anonymous = ] 'allow_anonymous'
Especifica si es posible crear suscripciones anónimas para la publicación indicada. allow_anonymous es nvarchar(5) y su valor predeterminado es TRUE, que permite suscripciones anónimas en la publicación. Para admitir suscriptores de SQL Server Compact, 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 desusado 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 mezcla use filtros de filas 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 Definir y modificar un filtro de fila con parámetros para un artículo de mezcla.
[ @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 de 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 archivo .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.[ @post_snapshot_script = ] 'post_snapshot_script'
Especifica un puntero a una ubicación de archivo .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.[ @compress_snapshot = ] 'compress_snapshot'
Especifica que la instantánea que se ha escrito en la ubicación @alt_snapshot_folder se comprima en 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 sí 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, es necesario especificar false.[ @ftp_address = ] 'ftp_address'
Es la dirección de red del servicio FTP para el 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 para el distribuidor. ftp_port es de tipo int y su valor predeterminado es 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 recupere 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 utiliza para conectar con el servicio FTP. ftp_login es de tipo sysname y su valor predeterminado es 'anonymous'.[ @ftp_password = ] 'ftp_password'
Es la contraseña del usuario que se utiliza para conectarse al servicio FTP. ftp_password es de tipo sysname y su valor predeterminado es NULL.Nota 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 que se conservan los conflictos. conflict_retention es de tipo int con un valor predeterminado de 14 días antes de que se purgue la fila conflictiva de la tabla de conflictos.[ @keep_partition_changes = ] 'keep_partition_changes'
Especifica si se permiten optimizaciones de cambio de particiones cuando no se pueden usar las particiones precalculadas. keep_partition_changes es de tipo nvarchar(5) y su valor predeterminado es TRUE. false significa que los cambios de particiones no se optimizan y, cuando no se utilizan las particiones precalculadas, las particiones enviadas a todos los suscriptores se comprueban cuando se modifican datos en una partición. true significa que los cambios de particiones se sincronizan y solo se ven 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 calculadas previamente.[!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 Administración del Agente de replicación.
Con suscriptores de SQL Server Compact, keep_partition_changes debe establecerse en true para garantizar que las eliminaciones se propagan correctamente. Si se establece en false, el suscriptor puede 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 suscritas 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 desusado 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
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, con un valor predeterminado de 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 estos valores: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 calculadas previamente.
[ @publication_compatibility_level = ] backward_comp_level
Indica la compatibilidad con versiones anteriores de la publicación. backward_comp_level es de tipo nvarchar(6) y puede tener uno de estos valores:Valor
Versión
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 bases de datos de publicaciones.Se respeta el parámetro @replicate\_ddl 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 las nuevas instrucciones DML incluyan la columna que se quitó, lo que haría que el agente de distribución produjera un error. El parámetro @replicate\_ddl se omite porque la replicación siempre debe replicar el cambio de esquema.
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. Estas instrucciones DML pueden hacer que el agente de distribución genere un error. El parámetro @replicate\_ddl se omite porque la replicación siempre debe replicar el cambio de esquema.
Cuando una instrucción DDL agrega una columna nueva, sysarticlecolumns no incluye esta columna nueva. Las instrucciones DML no intentarán replicar datos para la nueva columna. Se respeta el parámetro porque la DDL es aceptable se realice o no la replicación.
[ @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. 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ánea.[ @allow_web_synchronization = ] 'allow_web_synchronization'
Especifica si la publicación se habilita para 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, es necesario especificar true.[ @web_synchronization_url= ] 'web_synchronization_url'
Especifica el valor predeterminado de la dirección URL de Internet utilizada para la sincronización web. web_synchronization_url i es nvarchar(500), con un valor predeterminado de 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 se envían eliminaciones al suscriptor cuando una modificación de la fila del publicador provoca que se modifique 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 mediante la eliminación de los datos que han dejado de formar parte de la partición del suscriptor. false deja los datos de una partición antigua en el suscriptor, donde los cambios realizados en dichos datos del publicador no se replicarán a este suscriptor, pero los cambios realizados 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 para el periodo de retención que establece retention. retention_period_unit es nvarchar(10), y puede ser uno de los siguientes valores.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 int, con un valor predeterminado de 1000.[ @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.Importante 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 conflictivos. conflict_logging es de tipo nvarchar(15) y puede tener uno de los siguientes valores: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.
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, 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'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
Permisos
Solo los miembros del rol fijo de servidor sysadmin o del rol fijo de base de datos db_owner pueden ejecutar sp_addmergepublication.
Vea también
Referencia
sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Procedimientos almacenados de replicación (Transact-SQL)