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 und hat den Standardwert all.

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

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

  • [ @upload_first = ] 'upload_first'
    Gibt an, ob Änderungen auf dem Abonnenten vor dem erneuten Initialisieren des Abonnements hochgeladen werden. upload_first ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE. Wenn true festgelegt ist, werden Änderungen durch Hochladen übertragen, bevor das Abonnement neu initialisiert wird. Wenn false festgelegt ist, 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 Snapshot-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. Wenn Sie ausstehende Änderungen hochladen möchten, sollten Sie vor dem Ändern des Filters alle Abonnements 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'AdventureWorks2008R2Replica';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2008R2Replica]

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

USE [AdventureWorks2008R2Replica]

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