Condividi tramite


sp_reinitmergepullsubscription (Transact-SQL)

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.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [ @publisher = ] 'publisher'
    Nome del server di pubblicazione. publisher è di tipo sysname e il valore predefinito è ALL.

  • [ @publisher_db = ] 'publisher_db'
    Nome del database del server di pubblicazione. publisher_db è di tipo sysname e il valore predefinito è ALL.

  • [ @publication = ] 'publication'
    Nome della pubblicazione. publication è di tipo sysname e il valore predefinito è ALL.

  • [ @upload_first = ] 'upload_first'
    Indica se le modifiche nel Sottoscrittore vengono caricate prima della reinizializzazione della sottoscrizione. upload_first è di tipo nvarchar(5) e il valore predefinito è FALSE. Se è true, le modifiche vengono caricate prima della reinizializzazione della sottoscrizione. Se è false, le modifiche non vengono caricate.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

La stored procedure sp_reinitmergepullsubscription viene utilizzata per la replica di tipo merge.

Se si aggiunge, elimina o 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.

Esempio

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

Autorizzazioni

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