Share via


sp_resyncmergesubscription (Transact-SQL)

Si applica a:SQL Server

Risincronizza una sottoscrizione di tipo merge in base a uno stato di convalida noto specificato. È possibile forzare la convergenza o sincronizzare il database di sottoscrizione in un punto specifico nel tempo, ad esempio l'ultima volta in cui è stata eseguita una convalida o una data specificata. Lo snapshot non viene riapplicato quando si risincronizza una sottoscrizione usando questo metodo. Questa stored procedure non viene usata per le sottoscrizioni di replica snapshot o per le sottoscrizioni di replica transazionale. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione o nel database di sottoscrizione del Sottoscrittore.

Convenzioni di sintassi Transact-SQL

Sintassi

sp_resyncmergesubscription
    [ [ @publisher = ] N'publisher' ]
    [ , [ @publisher_db = ] N'publisher_db' ]
    , [ @publication = ] N'publication'
    [ , [ @subscriber = ] N'subscriber' ]
    [ , [ @subscriber_db = ] N'subscriber_db' ]
    , [ @resync_type = ] resync_type
    [ , [ @resync_date_str = ] N'resync_date_str' ]
[ ; ]

Argomenti

[ @publisher = ] N'publisher'

Nome del server di pubblicazione. @publisher è sysname, con un valore predefinito .NULL Un valore di NULL è valido se la stored procedure viene eseguita nel server di pubblicazione. Se la stored procedure viene eseguita nel Sottoscrittore, è necessario specificare un server di pubblicazione.

[ @publisher_db = ] N'publisher_db'

Nome del database di pubblicazione. @publisher_db è sysname, con il valore predefinito NULL. Il valore è NULL valido se la stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione. Se la stored procedure viene eseguita nel Sottoscrittore, è necessario specificare un server di pubblicazione.

[ @publication = ] N'publication'

Nome della pubblicazione. @publication è sysname, senza impostazione predefinita.

[ @subscriber = ] N'subscriber'

Nome del Sottoscrittore. @subscriber è sysname, con il valore predefinito NULL. Un valore di NULL è valido se la stored procedure viene eseguita nel Sottoscrittore. Se la stored procedure viene eseguita nel server di pubblicazione, è necessario specificare un Sottoscrittore.

[ @subscriber_db = ] N'subscriber_db'

Nome del database di sottoscrizione. @subscriber_db è sysname, con un valore predefinito .NULL Il valore è NULL valido se la stored procedure viene eseguita nel Sottoscrittore nel database di sottoscrizione. Se la stored procedure viene eseguita nel server di pubblicazione, è necessario specificare un Sottoscrittore.

[ @resync_type = ] resync_type

Definisce l'avvio della risincronizzazione. @resync_type è int e può essere uno dei valori seguenti.

Valore Descrizione
0 La sincronizzazione ha inizio dopo lo snapshot iniziale. Questa opzione è la più a elevato utilizzo di risorse, perché tutte le modifiche apportate dopo lo snapshot iniziale vengono riapplicate al Sottoscrittore.
1 La sincronizzazione ha inizio dopo l'ultima convalida riuscita. Tutte le generazioni nuove o incomplete eseguite dopo l'ultima convalida riuscita vengono riapplicate nel Sottoscrittore.
2 La sincronizzazione inizia dalla data specificata in resync_date_str. Tutte le generazioni nuove o incomplete eseguite dopo tale data vengono riapplicate nel Sottoscrittore.

[ @resync_date_str = ] N'resync_date_str'

Definisce la data di inizio del processo di risincronizzazione. @resync_date_str è nvarchar(30), con il valore predefinito NULL. Questo parametro viene usato quando il @resync_type è un valore di 2. La data specificata viene convertita nel valore datetime equivalente.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_resyncmergesubscription viene usato nella replica di tipo merge.

Un valore di per il parametro @resync_type, che riapplica tutte le modifiche dopo lo snapshot iniziale, potrebbe essere a elevato utilizzo di 0 risorse, ma probabilmente molto meno di una reinizializzazione completa. Se, ad esempio, lo snapshot iniziale è stato recapitato un mese fa, vengono riapplicati i dati relativi all'ultimo mese. Se lo snapshot iniziale contiene 1 gigabyte (GB) di dati, ma il numero di modifiche apportate dall'ultimo mese è costituito da 2 megabyte (MB) di dati modificati, sarebbe più efficiente riapplicare i dati che riapplicare lo snapshot completo di 1 GB.

Autorizzazioni

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