Share via


sp_reinitmergesubscription (Transact-SQL)

Markiert ein Mergeabonnement für die Neuinitialisierung bei der nächsten Ausführung des Merge-Agents. Diese gespeicherte Prozedur wird auf dem Verleger für die Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @publication = ] 'publication'
    Der Name der Veröffentlichung. publication ist vom Datentyp sysname. Der Standardwert ist all.

  • [ @subscriber = ] 'subscriber'
    Der Name des Abonnenten. subscriber ist vom Datentyp sysname. Der Standardwert ist all.

  • [ @subscriber_db = ] 'subscriber_db'
    Der Name der Abonnentendatenbank. subscriber_db ist vom Datentyp sysname. Der Standardwert ist all.

  • [ @upload_first = ] 'upload_first'
    Gibt an, ob Änderungen auf dem Abonnenten hochgeladen werden, bevor das Abonnement erneut initialisiert wird. upload_first ist vom Datentyp nvarchar (5). Der Standardwert ist FALSE. Bei true werden Änderungen durch Hochladen übertragen, bevor das Abonnement erneut initialisiert wird. Bei false werden keine Änderungen durch Hochladen übertragen.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_reinitmergesubscription wird für die Mergereplikation verwendet.

sp_reinitmergesubscription kann vom Verleger aufgerufen werden, um Mergeabonnements neu zu initialisieren. Wir empfehlen auch die erneute Ausführung des Momentaufnahme-Agents.

Wenn Sie einen parametrisierten Zeilenfilter hinzufügen, löschen oder ändern, können bei der erneuten Initialisierung noch ausstehende Änderungen am Abonnent nicht durch Hochladen übertragen werden. Zum Hochladen ausstehender Änderungen müssen Sie alle Abonnements vor dem Ändern des Filters synchronisieren.

Beispiel

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

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_reinitmergesubscription ausführen.

Siehe auch

Verweis

Gespeicherte Systemprozeduren (Transact-SQL)

Konzepte

Erneutes Initialisieren von Abonnements