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 publicación.

Icono de vínculo a temas Convenciones 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'
    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 suscriptor. subscriber_typees de tipo nvarchar(15) y puede tener uno de los valores siguientes.

    Valor

    Descripción

    local (default)

    Suscriptor solo 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 de cliente y a las suscripciones globales como suscripciones de servidor.

  • [ @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 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.

  • [ @frequency_type=] frequency_type
    Es un valor que indica cuándo se ejecutará el agente de mezcla. frequency_type es int, y puede ser uno de los siguientes valores.

    Valor

    Descripción

    1

    Una vez

    4

    Diariamente

    8

    Semanalmente

    10

    Mensualmente

    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 que se ejecuta el agente de mezcla. frequency_interval es int, y puede ser uno de los siguientes 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 de mezcla programada 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 repetición que se utiliza en frequency_type. frequency_recurrence_factores de tipo int y su valor predeterminado es NULL.

  • [ @frequency_subday=] frequency_subday
    Es la unidad de frequency_subday_interval. frequency_subday es int, y puede ser uno de los siguientes valores.

    Valor

    Descripción

    1

    Una vez

    2

    Segundo

    4

    Minute

    8

    Hour

    NULL (valor predeterminado)

     

  • [ @frequency_subday_interval=] frequency_subday_interval
    Es la frecuencia con que se repite frequency_subday entre mezclas. frequency_subday_interval es de tipo int y su valor predeterminado es NULL.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Es la hora del día en que el agente de mezcla se programa por primera vez, 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
    Es la hora del día en que el agente de mezcla deja de estar programado, 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 que el agente de mezcla se programa por primera vez, con el 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 la que el agente de mezcla deja de estar programado, con el 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 Microsoft SQL Server Management Studio.

  • [ @offloadagent= ] remote_agent_activation
    Especifica que el agente puede activarse de manera remota. remote_agent_activation es de tipo bit y su valor predeterminado es 0.

    [!NOTA]

    Este parámetro ha quedado desusado y solamente se mantiene por compatibilidad con versiones anteriores de scripts.

  • [ @offloadserver= ] 'remote_agent_server_name'
    Especifica el nombre de red del servidor a utilizar en 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 que los conflictos se resuelvan de forma interactiva para todos los artículos que lo permitan. use_interactive_resolver es de tipo nvarchar(5) y su valor predeterminado es FALSE.

  • [ @merge_job_name= ] 'merge_job_name'
    El parámetro @merge\_job\_name está desusado y no se puede establecer. merge_job_name es de tipo sysname y su valor predeterminado es NULL.

  • [ @hostname= ] 'hostname'
    Invalida el valor de devuelto por HOST_NAME cuando esta función se usa 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)

Comentarios

sp_addmergesubscription se utiliza en la replicación de mezcla.

Cuando sp_addmergesubscription es ejecutado por un miembro del rol fijo 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 [AdventureWorks2012];
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

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

Vea también

Referencia

sp_changemergesubscription (Transact-SQL)

sp_dropmergesubscription (Transact-SQL)

sp_helpmergesubscription (Transact-SQL)

Conceptos

Crear una suscripción de inserción

Crear una suscripción de extracción

Resolución interactiva de conflictos

Suscribirse a publicaciones