sp_reinitmergesubscription (Transact-SQL)
Contrassegna una sottoscrizione di tipo merge per la reinizializzazione alla successiva esecuzione dell'agente di merge. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_reinitmergesubscription [ [ @publication = ] 'publication'
[ , [ @subscriber = ] 'subscriber'
[ , [ @subscriber_db = ] 'subscriber_db'
[ , [ @upload_first = ] 'upload_first'
Argomenti
- [ @publication = ] 'publication'
Nome della pubblicazione. publication è di tipo sysname e il valore predefinito è all.
- [ @subscriber = ] 'subscriber'
Nome del Sottoscrittore. subscriber è di tipo sysname e il valore predefinito è all.
- [ @subscriber_db = ] 'subscriber_db'
Nome del database del Sottoscrittore. subscriber_db è 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.
Osservazioni
La stored procedure sp_reinitmergesubscription viene utilizzata in repliche di tipo merge.
È possibile chiamare sp_reinitmergesubscription dal server di pubblicazione per reinizializzare le sottoscrizioni di tipo merge. È consigliabile rieseguire anche l'agente snapshot.
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.
Autorizzazioni
Solo i membri del ruolo predefinito del server sysadmin o del ruolo predefinito del database db_owner possono eseguire sp_reinitmergesubscription.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
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 @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.
Vedere anche
Riferimento
Stored procedure di sistema (Transact-SQL)
Altre risorse
How to: Reinitialize a Subscription (Replication Transact-SQL Programming)
Reinizializzazione di una sottoscrizione