Compartir a través de


sp_reinitmergesubscription (Transact-SQL)

Marca una suscripción de mezcla para reinicializarla la próxima vez que se ejecute el Agente de mezcla. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_reinitmergesubscription [ [ @publication = ] 'publication'
    [ , [ @subscriber = ] 'subscriber'
    [ , [ @subscriber_db = ] 'subscriber_db'
    [ , [ @upload_first = ] 'upload_first'

Argumentos

  • [ @publication = ] 'publication'
    Es el nombre de la publicación. publication es de tipo sysname y su valor predeterminado es all.

  • [ @subscriber = ] 'subscriber'
    Es el nombre del suscriptor. subscriber es de tipo sysname y su valor predeterminado es all.

  • [ @subscriber_db = ] 'subscriber_db'
    Es el nombre de la base de datos del suscriptor. subscriber_db es de tipo sysname y su valor predeterminado es all.

  • [ @upload_first = ] 'upload_first'
    Especifica si se cargan los cambios del suscriptor antes de que se reinicialice la suscripción. upload_first es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es true, los cambios se cargan antes de reinicializar la suscripción. Si es false, los cambios no se cargan.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

sp_reinitmergesubscription se utiliza en la replicación de mezcla.

Se puede llamar a sp_reinitmergesubscription desde el publicador para reinicializar las suscripciones de mezcla. También se recomienda volver a ejecutar el Agente de instantáneas.

Si agrega, quita o cambia un filtro con parámetros, los cambios pendientes en el suscriptor no se pueden cargar en el publicador durante la reinicialización. Si desea cargar los cambios pendientes, sincronice todas las suscripciones antes de cambiar el filtro.

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 @subscriptionDB AS sysname;
DECLARE @publication AS sysname;
SET @subscriptionDB = N'AdventureWorks2012Replica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2012Replica]

-- Execute at the Publisher to reinitialize the push subscription. 
-- Pending changes at the Subscrber are lost.
EXEC sp_reinitmergesubscription 
    @subscriber = $(SubServer),
    @subscriber_db = @subscriptionDB,
    @publication = @publication,
    @upload_first = N'false';
GO

-- Start the Merge Agent.

-- 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 @subscriptionDB AS sysname;
DECLARE @publication AS sysname;
SET @subscriptionDB = N'AdventureWorks2012Replica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2012Replica]

-- Execute at the Publisher to reinitialize the push subscription, 
-- and upload pending changes at the Subscriber. 
EXEC sp_reinitmergesubscription 
    @subscriber = $(SubServer),
    @subscriber_db = @subscriptionDB,
    @publication = @publication,
    @upload_first = N'true';
GO

-- Start the Merge Agent.

Permisos

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

Vea también

Referencia

Procedimientos almacenados del sistema (Transact-SQL)

Conceptos

Reinicializar suscripciones