sp_addmergepullsubscription (Transact-SQL)

Agrega una suscripción de extracción a una publicación de mezcla. Este procedimiento almacenado se ejecuta en el suscriptor de la base de datos de suscripciones.

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

Sintaxis

sp_addmergepullsubscription [ @publication= ] 'publication' 
    [ , [ @publisher= ] 'publisher' ] 
    [ , [ @publisher_db = ] 'publisher_db' ] 
    [ , [ @subscriber_type= ] 'subscriber_type' ] 
    [ , [ @subscription_priority= ] subscription_priority ] 
    [ , [ @sync_type= ] 'sync_type' ] 
    [ , [ @description= ] 'description' ]

Argumentos

  • [ @publication=] 'publication'
    Es el nombre de la publicación. publication es de tipo sysname y no tiene ningún valor predeterminado.

  • [ @publisher=] 'publisher'
    Es el nombre del publicador. Publisher es de tipo sysname y su valor predeterminado es el nombre del servidor local. El publicador debe ser un servidor válido.

  • [ @publisher_db=] 'publisher_db'
    Es el nombre de la base de datos del publicador. publisher_db es de tipo sysname y su valor predeterminado es NULL.

  • [ @subscriber_type=] 'subscriber_type'
    Es el tipo del suscriptor. subscriber_type es de tipo nvarchar(15) y puede ser global, local o anonymous. 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 sobre tipos de suscripciones en Cómo la replicación de mezcla detecta y resuelve conflictos.

  • [ @subscription_priority=] subscription_priority
    Es la prioridad de la suscripción. subscription_priorityes de tipo real y su valor predeterminado es NULL. Para las suscripciones locales y anónimas, la prioridad es 0.0. La resolución predeterminada utiliza la prioridad para elegir un ganador cuando se detectan conflictos. Para los suscriptores globales, la prioridad de la suscripción debe ser menor que 100, que es la prioridad del publicador.

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

  • [ @description=] 'description'
    Es una breve descripción de esta suscripción de extracción. descriptiones de tipo nvarchar(255) y su valor predeterminado es NULL. El Monitor de replicación muestra este valor en la columna Friendly Name, que se puede utilizar para ordenar las suscripciones en una publicación supervisada.

Valores de código de retorno

0 (correcto) o 1 (error)

Notas

sp_addmergepullsubscription se utiliza en la replicación de mezcla.

Si se va a utilizar el Agente de SQL Server para sincronizar la suscripción, se debe ejecutar el procedimiento almacenado sp_addmergepullsubscription_agent en el suscriptor para crear un agente y un trabajo para sincronizarlo con la publicació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".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';
SET @hostname = N'adventure-works\david8';

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorksReplica]
EXEC sp_addmergepullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication, 
  @distributor = @publisher, 
  @job_login = $(Login), 
  @job_password = $(Password),
  @hostname = @hostname;
GO
-- 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".

-- Publication must support anonymous Subscribers.
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @websyncurl AS sysname;
DECLARE @security_mode AS int;
DECLARE @login AS sysname;
DECLARE @password AS nvarchar(512);
SET @publication = N'AdvWorksSalesOrdersMergeWebSync';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';
SET @websyncurl = 'https://' + $(WebServer) + '/WebSync';
SET @security_mode = 0; -- Basic Authentication for IIS
SET @login = $(Login);
SET @password = $(Password);

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorksReplica]
EXEC sp_addmergepullsubscription 
    @publisher = @publisher, 
    @publication = @publication, 
    @publisher_db = @publicationDB,
    @subscriber_type = N'anonymous';

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
    @publisher = @publisher, 
    @publisher_db = @publicationDB, 
    @publication = @publication, 
    @distributor = @publisher, 
    @job_login = @login, 
    @job_password = @password,
    @use_web_sync = 1,
    @internet_security_mode = @security_mode,
    @internet_url = @websyncurl,
    @internet_login = @login,
    @internet_password = @password;
GO

Permisos

Sólo los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden ejecutar sp_addmergepullsubscription_agent.