sp_reinitmergepullsubscription (Transact-SQL)

Gilt für:SQL Server

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

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @publisher = ] N'publisher'

Der Name des Herausgebers. @publisher ist "sysname" mit der Standardeinstellung "all.

[ @publisher_db = ] N'publisher_db'

Der Name der Verlegerdatenbank. @publisher_db ist "sysname" mit der Standardeinstellung "all.

[ @publication = ] N'Publikation'

Der Name der Veröffentlichung. @publication ist "sysname" mit der Standardeinstellung "all.

[ @upload_first = ] N'upload_first'

Gibt an, ob Änderungen am Abonnenten hochgeladen werden, bevor das Abonnement erneut initialisiert wird. @upload_first ist nvarchar(5) mit einem Standardwert von false.

  • Wenn trueÄnderungen hochgeladen werden, bevor das Abonnement erneut initialisiert wird.
  • Wenn false, werden Änderungen nicht hochgeladen.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler).

Hinweise

sp_reinitmergepullsubscription wird in der Seriendruckreplikation verwendet.

Wenn Sie einen parametrisierten Filter hinzufügen, ablegen oder ändern, können ausstehende Änderungen am Abonnenten während der Erneutitialisierung nicht in den Publisher hochgeladen werden. Wenn Sie ausstehende Änderungen hochladen möchten, sollten Sie vor dem Ändern des Filters alle Abonnements synchronisieren.

Beispiele

.A Erneutes Initialisieren des Pullabonnements und Verlust ausstehender Änderungen

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

USE [AdventureWorks2022Replica]

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

B. Erneutes Initialisieren des Pullabonnements und Hochladen ausstehender Änderungen

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

USE [AdventureWorks2022Replica]

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

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder die db_owner feste Datenbankrolle können ausgeführt werden sp_reinitmergepullsubscription.