Compartir vía


sp_reinitmergesubscription (Transact-SQL)

Se aplica a: SQL Server

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

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @publication = ] N'publication'

Nombre de la publicación. @publication es sysname, con un valor predeterminado de all.

[ @subscriber = ] N'subscriber'

Nombre del suscriptor. @subscriber es sysname, con un valor predeterminado de all.

[ @subscriber_db = ] N'subscriber_db'

Nombre de la base de datos del suscriptor. @subscriber_db es sysname, con un valor predeterminado de all.

[ @upload_first = ] N'upload_first'

Especifica si los cambios en el suscriptor se cargan antes de reinicializar la suscripción. @upload_first es nvarchar(5), con un valor predeterminado de false.

  • Si truees , los cambios se cargan antes de reinicializar la suscripción.
  • Si falsees , los cambios no se cargan.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

sp_reinitmergesubscription se usa en la replicación de mezcla.

sp_reinitmergesubscription se puede llamar desde el publicador para reinicializar las suscripciones de mezcla. También debe 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.

Ejemplos

A Reinicializar la suscripción de inserción y perder los cambios pendientes

-- 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'AdventureWorks2022Replica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2022Replica]

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

B. Reinicializar la suscripción de inserción y cargar los cambios pendientes

-- 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'AdventureWorks2022Replica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2022Replica]

-- 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 el rol fijo de base de datos db_owner pueden ejecutar sp_reinitmergesubscription.