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.

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

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.

    Nota importanteImportante

    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.