Freigeben über


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 Publikationsdatenbank 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 Publikation. 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 geuploadet werden. upload_first ist vom Datentyp nvarchar(5) und hat den Standardwert FALSE. Wenn true festgelegt ist, werden Änderungen mithilfe von Upload übertragen, bevor das Abonnement neu initialisiert wird. Wenn false festgelegt ist, werden keine Änderungen mithilfe von Upload ü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 mithilfe von Upload übertragen werden. Wenn Sie ausstehende Änderungen uploaden möchten, sollten Sie vor dem Ändern des Filters alle Abonnements synchronisieren.

Berechtigungen

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

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

USE [AdventureWorksReplica]

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

USE [AdventureWorksReplica]

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

Siehe auch

Verweis

Gespeicherte Systemprozeduren (Transact-SQL)

Andere Ressourcen

How to: Reinitialize a Subscription (Replication Transact-SQL Programming)
Erneutes Initialisieren eines Abonnements

Hilfe und Informationen

Informationsquellen für SQL Server 2005