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