Freigeben über


sp_reinitmergepullsubscription (Transact-SQL)

Markiert ein Mergepullabonnement für die Neuinitialisierung bei der nächsten Ausführung des Merge-Agents. Diese gespeicherte Prozedur wird auf dem Abonnenten für die Abonnementdatenbank ausgeführt.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_reinitmergepullsubscription [ [ @publisher = ] 'publisher' ]
    [ , [ @publisher_db = ] 'publisher_db' ]
    [ , [ @publication = ] 'publication' ]
    [ , [ @upload_first = ] 'upload_first'

Argumente

  • [ @publisher= ] 'publisher'
    Der Name des Verlegers. publisher ist vom Datentyp sysname und hat den Standardwert ALL.
  • [ @publisher_db = ] 'publisher_db'
    Der Name der Verlegerdatenbank. publisher_db ist vom Datentyp sysname und hat den Standardwert ALL.
  • [ @publication= ] 'publication'
    Der Name der Publikation. publication 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. Bei true werden Änderungen mithilfe eines Uploads übertragen, bevor das Abonnement erneut initialisiert wird. Bei false werden keine Änderungen mithilfe eines Uploads übertragen.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_reinitmergepullsubscription wird für die Mergereplikation verwendet.

Wenn Sie einen parametrisierten Filter hinzufügen, löschen oder ändern, können ausstehende Änderungen auf dem Abonnenten während der erneuten Initialisierung nicht auf den Verleger geuploadet werden. Zum Uploaden ausstehender Änderungen müssen Sie alle Abonnements vor dem Ändern des Filters synchronisieren.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_reinitmergepullsubscription 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 @publicationDB AS sysname;
DECLARE @publication AS sysname;
SET @publicationDB = N'AdventureWorks';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorksReplica]

-- Execute at the Subscriber to reinitialize the pull subscription. 
-- Pending changes at the Subscrber are lost.
EXEC sp_reinitmergepullsubscription 
    @publisher = $(PubServer),
    @publisher_db = @publicationDB,
    @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 @publicationDB AS sysname;
DECLARE @publication AS sysname;
SET @publicationDB = N'AdventureWorks';
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorksReplica]

-- Execute at the Subscriber to reinitialize the pull subscription, 
-- and upload pending changes at the Subscriber. 
EXEC sp_reinitmergepullsubscription 
    @publisher = $(PubServer),
    @publisher_db = @publicationDB,
    @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