sp_addmergepullsubscription (Transact-SQL)

Actualizado: 15 de septiembre de 2007

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, 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 réplica de mezcla detecta y resuelve conflictos. Se necesita un valor anonymous si se desea crear una suscripción sin registrarla en el publicador. Esto es necesario para casos como la sincronización Web, en la que no se puede establecer una conexión de SQL Server con el publicador durante la configuración de la suscripción.
  • [ @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] No se recomienda especificar un 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 réplica muestra este valor en la columna Friendly Name, que se puede utilizar para ordenar las suscripciones en una publicación supervisada.

Notas

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

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.

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".

-- 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

Vea también

Referencia

sp_addmergepullsubscription_agent (Transact-SQL)
sp_changemergepullsubscription (Transact-SQL)
sp_dropmergepullsubscription (Transact-SQL)
sp_helpmergepullsubscription (Transact-SQL)
sp_helpsubscription_properties (Transact-SQL)

Otros recursos

Cómo crear una suscripción de extracción (programación de la réplica con Transact-SQL)
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.

12 de diciembre de 2006

Contenido modificado:
  • Contenido eliminado que afirmaba incorrectamente que las suscripciones anónimas ya no se utilizaban.