sp_addmergesubscription (Transact-SQL)
Crea una suscripción de mezcla de inserción o extracción. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.
Sintaxis
sp_addmergesubscription [ @publication= ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db= ] 'subscriber_db' ]
[ , [ @subscription_type= ] 'subscription_type' ]
[ , [ @subscriber_type= ] 'subscriber_type' ]
[ , [ @subscription_priority= ] subscription_priority ]
[ , [ @sync_type= ] 'sync_type' ]
[ , [ @frequency_type= ] frequency_type ]
[ , [ @frequency_interval= ] frequency_interval ]
[ , [ @frequency_relative_interval= ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ]
[ , [ @frequency_subday= ] frequency_subday ]
[ , [ @frequency_subday_interval= ] frequency_subday_interval ]
[ , [ @active_start_time_of_day= ] active_start_time_of_day ]
[ , [ @active_end_time_of_day= ] active_end_time_of_day ]
[ , [ @active_start_date= ] active_start_date ]
[ , [ @active_end_date= ] active_end_date ]
[ , [ @optional_command_line= ] 'optional_command_line' ]
[ , [ @description= ] 'description' ]
[ , [ @enabled_for_syncmgr= ] 'enabled_for_syncmgr' ]
[ , [ @offloadagent= ] remote_agent_activation]
[ , [ @offloadserver= ] 'remote_agent_server_name' ]
[ , [ @use_interactive_resolver= ] 'use_interactive_resolver' ]
[ , [ @merge_job_name= ] 'merge_job_name' ]
[ , [ @hostname = ] 'hostname'
Argumentos
[ @publication=] 'publication'
Es el nombre de la publicación. publication es de tipo sysname y no tiene ningún valor predeterminado. La publicación ya debe existir.[ @subscriber =] 'subscriber'
Es el nombre del suscriptor. subscriber es de tipo sysname y su valor predeterminado es NULL.[ @subscriber_db=] 'subscriber_db'
Es el nombre de la base de datos de suscripciones. subscriber_dbes de tipo sysname y su valor predeterminado es NULL.[ @subscription_type=] 'subscription_type'
Es el tipo de suscripción. subscription_typees de tipo nvarchar(15) y su valor predeterminado es PUSH. Si es push, se agrega una suscripción de inserción y el Agente de mezcla se agrega al distribuidor. Si es pull, se agrega una suscripción de extracción sin agregar un Agente de mezcla al distribuidor.[!NOTA]
Las suscripciones anónimas no necesitan utilizar este procedimiento almacenado.
[ @subscriber_type=] 'subscriber_type'
Es el tipo de artículo. subscriber_typees de tipo nvarchar(15) y puede tener uno de los valores siguientes.Valor
Descripción
local (default)
Suscriptor sólo conocido para el publicador.
global
Suscriptor conocido para todos los servidores.
En SQL Server 2005 y versiones posteriores, se hace referencia a las suscripciones locales como suscripciones cliente, y a las suscripciones globales como suscripciones de servidor. Para obtener más información, vea la sección "Tipos de suscripción" de Cómo la replicación de mezcla detecta y resuelve conflictos.
[ @subscription_priority=] subscription_priority
Es un número que indica la prioridad de la suscripción. subscription_priorityes de tipo real y su valor predeterminado es NULL. En las suscripciones locales y anónimas, la prioridad es 0.0. En el caso de las suscripciones globales, la prioridad debe ser inferior a 100.0.[ @sync_type=] 'sync_type'
Es el tipo de sincronización de la suscripción. sync_typees de tipo nvarchar(15) y su valor predeterminado es automatic. Puede ser automatic o none. Si es automatic, el esquema y los datos iniciales de las tablas publicadas se transfieren primero al suscriptor. Si es none, se supone que el suscriptor tiene ya el esquema y los datos iniciales de las tablas publicadas. Las tablas y los datos del sistema se transfieren siempre.[!NOTA]
Se recomienda no especificar el valor none. Para obtener más información, vea Inicializar una suscripción de mezcla sin una instantánea.
[ @frequency_type=] frequency_type
Es un valor que indica cuándo se ejecutará el Agente de mezcla. frequency_type es de tipo int y puede tener uno de los valores siguientes.Valor
Descripción
1
Una vez
4
Diario
8
Semanal
10
Mensual
20
Mensualmente, dependiendo del intervalo de frecuencia
40
Cuando se inicia el Agente SQL Server
NULL (valor predeterminado)
[ @frequency_interval=] frequency_interval
El día o los días en los que se ejecuta el Agente de mezcla. frequency_interval es de tipo int y puede ser uno de estos valores.Valor
Descripción
1
Domingo
2
Lunes
3
Martes
4
Miércoles
5
Jueves
6
Viernes
7
Sábado
8
Día
9
Días de la semana
10
Días del fin de semana
NULL (valor predeterminado)
[ @frequency_relative_interval=] frequency_relative_interval
Es la repetición programada de mezcla del intervalo de frecuencia de cada mes. frequency_relative_interval es de tipo int y puede tener uno de estos valores.Valor
Descripción
1
Primero
2
Segundo
4
Tercero
8
Cuarto
16
Último
NULL (valor predeterminado)
[ @frequency_recurrence_factor=] frequency_recurrence_factor
Es el factor de periodicidad utilizado por frequency_type. frequency_recurrence_factores de tipo int y su valor predeterminado es NULL.[ @frequency_subday=] frequency_subday
Es la unidad para frequency_subday_interval. frequency_subday es de tipo int y puede tener uno de los valores siguientes.Valor
Descripción
1
Una vez
2
Segundo
4
Minuto
8
Hora
NULL (valor predeterminado)
[ @frequency_subday_interval=] frequency_subday_interval
Es la frecuencia con la que se repetirá frequency_subday entre cada mezcla. frequency_subday_interval es de tipo int y su valor predeterminado es NULL.[ @active_start_time_of_day=] active_start_time_of_day
Hora del día de la primera programación del Agente de mezcla, con el formato HHMMSS. active_start_time_of_day es de tipo int y su valor predeterminado es NULL.[ @active_end_time_of_day=] active_end_time_of_day
Hora del día en que se detiene la programación del Agente de mezcla, con el formato HHMMSS. active_end_time_of_day es de tipo int y su valor predeterminado es NULL.[ @active_start_date=] active_start_date
Es la fecha en la que comienza la programación del Agente de mezcla, en formato AAAAMMDD. active_start_date es de tipo int y su valor predeterminado es NULL.[ @active_end_date=] active_end_date
Es la fecha en que se detiene la programación del Agente de mezcla, en formato AAAAMMDD. active_end_date es de tipo int y su valor predeterminado es NULL.[ @optional_command_line=] 'optional_command_line'
Es el símbolo del sistema opcional que se va a ejecutar. optional_command_linees de tipo nvarchar(4000) y su valor predeterminado es NULL. Este parámetro se utiliza para agregar un comando que captura el resultado y lo guarda en un archivo o para especificar un atributo o archivo de configuración.[ @description=] 'description'
Es una breve descripción de esta suscripción de mezcla. descriptiones de tipo nvarchar(255) y su valor predeterminado es NULL. El Monitor de replicación muestra este valor en la columna Nombre descriptivo, que se puede utilizar para ordenar las suscripciones de una publicación supervisada.[ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
Especifica si la suscripción se puede sincronizar mediante el Administrador de sincronización de Microsoft Windows. enabled_for_syncmgr es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es false, la suscripción no se registra con el Administrador de sincronización. Si es true, la suscripción se registra con el Administrador de sincronización y se puede sincronizar sin iniciar MicrosoftSQL Server Management Studio.[ @offloadagent= ] remote_agent_activation
Especifica que es posible activar el agente de forma remota. remote_agent_activation es de tipo bit y su valor predeterminado es 0.[!NOTA]
Este parámetro ha quedado obsoleto y sólo se mantiene por compatibilidad con versiones anteriores de scripts.
[ @offloadserver= ] 'remote_agent_server_name'
Especifica el nombre de red del servidor que se va a utilizar para la activación remota del agente. remote_agent_server_namees de tipo sysname y su valor predeterminado es NULL.[ @use_interactive_resolver= ] 'use_interactive_resolver'
Permite resolver de forma interactiva los conflictos de todos los artículos que admiten la resolución interactiva. use_interactive_resolver es de tipo nvarchar(5) y su valor predeterminado es FALSE.[ @merge_job_name= ] 'merge_job_name'
Nombre del trabajo del Agente de mezcla que se agrega a esta suscripción. merge_job_name es de tipo sysname y su valor predeterminado es NULL. Este parámetro permite que se proporcione un nombre de trabajo de Agente de mezcla para que el trabajo se pueda administrar posteriormente.[ @hostname= ] 'hostname'
Omite el valor de devuelto por HOST_NAME cuando esta función se utiliza en la cláusula WHERE de un filtro con parámetros. Hostname es de tipo sysname y su valor predeterminado es NULL.Importante Por motivos de rendimiento, se recomienda no aplicar funciones a los nombres de columna de las cláusulas de filtro de fila con parámetros, como LEFT([MyColumn]) = SUSER_SNAME(). Si se utiliza HOST_NAME en una cláusula de filtro y se omite el valor de HOST_NAME, puede ser necesario convertir los tipos de datos mediante CONVERT. Para obtener más información acerca de las prácticas recomendadas para este caso, vea la sección "Reemplazar el valor de HOST_NAME()" del tema Filtros de fila con parámetros.
Valores de código de retorno
0 (correcto) o 1 (error)
Notas
sp_addmergesubscription se utiliza en la replicación de mezcla.
Cuando sp_addmergesubscription es ejecutado por un miembro de la función fija de servidor sysadmin para crear una suscripción de inserción, el trabajo de Agente de mezcla se crea de forma implícita y se ejecuta en la cuenta del servicio del Agente SQL Server.Se recomienda ejecutar sp_addmergepushsubscription_agent y especificar las credenciales de una cuenta de Windows diferente específica del agente para @job_login y @job_password. Para obtener más información, vea Modelo de seguridad del Agente de replicación.
Ejemplo
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks]
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
Permisos
Sólo los miembros de la función fija de servidor sysadmin o la función fija de base de datos db_owner pueden ejecutar sp_addmergesubscription.
Vea también