sp_addmergesubscription (Transact-SQL)

Actualizado: 15 de septiembre de 2007

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 suscriptor. subscriber_typees de tipo nvarchar(15) y puede tener uno de los valores siguientes.

    Valor Descripción

    local (valor predeterminado)

    Suscriptor sólo conocido para el publicador.

    global

    Suscriptor conocido para todos los servidores.

    En SQL Server 2005, las suscripciones locales se conocen como suscripciones de cliente y las globales como suscripciones de servidor. Para obtener más información, vea la sección "Tipos de suscripción" de Cómo la réplica 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'
    Indica el tipo de sincronización de la suscripción. sync_typees de tipo nvarchar(15) y el 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 ya tiene el esquema y los datos iniciales de las tablas publicadas. Las tablas y los datos del sistema se transfieren siempre.

    [!NOTA] No se recomienda especificar un 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 tener 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 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
    Es la 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
    Es la hora del día de 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 YYYYMMDD. 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 YYYYMMDD. 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 réplica 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'
    Indica 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 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 secuencias de comandos.

  • [ @offloadserver= ] 'remote_agent_server_name'
    Especifica el nombre de red del servidor que se va a utilizar para el agente de activación remota. 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 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.

    ms187717.note(es-es,SQL.90).gifImportante:
    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.

Notas

sp_addmergesubscription se utiliza en la réplica 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 réplica.

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.

Valores de código de retorno

0 (correcto) o 1 (error)

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

Vea también

Referencia

sp_changemergesubscription (Transact-SQL)
sp_dropmergesubscription (Transact-SQL)
sp_helpmergesubscription (Transact-SQL)

Otros recursos

Cómo crear una suscripción de inserción (programación de la réplica con Transact-SQL)
Cómo crear una suscripción de extracción (programación de la réplica con Transact-SQL)
Resolución interactiva de conflictos
Suscribirse a publicaciones

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

15 de septiembre de 2007

Contenido nuevo:
  • Se agregó una nota informando que no se recomienda especificar un valor none para el parámetro @sync_type.