Condividi tramite


sp_reinitmergepullsubscription (Transact-SQL)

Si applica a: SQL Server

Contrassegna una sottoscrizione pull di tipo merge per la reinizializzazione alla successiva esecuzione dell'agente di merge. Questa stored procedure viene eseguita nel database di sottoscrizione del Sottoscrittore.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @publisher = ] N'publisher'

Nome del server di pubblicazione. @publisher è sysname, con un valore predefinito .all

[ @publisher_db = ] N'publisher_db'

Nome del database del server di pubblicazione. @publisher_db è sysname, con il valore predefinito all.

[ @publication = ] N'publication'

Nome della pubblicazione. @publication è sysname, con il valore predefinito all.

[ @upload_first = ] N'upload_first'

Specifica se le modifiche nel Sottoscrittore vengono caricate prima che la sottoscrizione venga reinizializzata. @upload_first è nvarchar(5), con il valore predefinito false.

  • Se true, le modifiche vengono caricate prima della reinizializzazione della sottoscrizione.
  • Se false, le modifiche non vengono caricate.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_reinitmergepullsubscription viene usato nella replica di tipo merge.

Se si aggiunge, rilascia o si modifica un filtro con parametri, le modifiche in sospeso nel Sottoscrittore non possono essere caricate nel server di pubblicazione durante la reinizializzazione. Per caricare le modifiche in sospeso, sincronizzare tutte le sottoscrizioni prima di modificare il filtro.

Esempi

R. Reinizializzare la sottoscrizione pull e perdere le modifiche in sospeso

-- 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. Reinizializzare la sottoscrizione pull e caricare le modifiche in sospeso

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

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin o il ruolo predefinito del database db_owner possono eseguire sp_reinitmergepullsubscription.