Condividi tramite


sp_setsubscriptionxactseqno (Transact-SQL)

Si applica a: SQL Server

Usato durante la risoluzione dei problemi per specificare l'ultima transazione recapitata usando il numero di sequenza del log (LSN), consentendo al agente di distribuzione di iniziare a recapitare alla transazione successiva. Dopo il riavvio, il agente di distribuzione restituisce transazioni maggiori di questa filigrana (LSN) dalla cache del database di distribuzione (msrepl_commands). Questa stored procedure viene eseguita nel database di sottoscrizione del Sottoscrittore. e non è supportata per Sottoscrittori non SQL Server.

Attenzione

Se si utilizza questa stored procedure in modo non corretto oppure si specifica un valore LSN non corretto, è possibile che l'agente di distribuzione annulli modifiche già applicate nel Sottoscrittore oppure ignori tutte le restanti modifiche.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_setsubscriptionxactseqno
    [ @publisher = ] N'publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @publication = ] N'publication'
    , [ @xact_seqno = ] xact_seqno
[ ; ]

Argomenti

[ @publisher = ] N'publisher'

Nome del server di pubblicazione. @publisher è sysname, senza impostazione predefinita.

[ @publisher_db = ] N'publisher_db'

Nome del database di pubblicazione. @publisher_db è sysname, senza impostazione predefinita. Per un server di pubblicazione non SQL Server, @publisher_db è il nome del database di distribuzione.

[ @publication = ] N'publication'

Nome della pubblicazione. @publication è sysname, senza impostazione predefinita. Quando più di una pubblicazione condivide il agente di distribuzione, è necessario specificare il valore per ALL @publication.

[ @xact_seqno = ] xact_seqno

LSN della transazione successiva nel server di distribuzione da applicare nel Sottoscrittore. @xact_seqno è varbinary(16), senza impostazione predefinita.

Set di risultati

Nome colonna Tipo di dati Descrizione
ORIGINAL XACT_SEQNO varbinary(16) LSN originale della successiva transazione da applicare nel Sottoscrittore.
UPDATED XACT_SEQNO varbinary(16) LSN aggiornato della successiva transazione da applicare nel Sottoscrittore.
SUBSCRIPTION STREAM COUNT int Numero di flussi di sottoscrizione utilizzati durante l'ultima sincronizzazione.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_setsubscriptionxactseqno viene usato nella replica transazionale.

sp_setsubscriptionxactseqno non può essere usato in una topologia di replica transazionale peer-to-peer.

sp_setsubscriptionxactseqno può essere usato per ignorare una transazione specifica che causa un errore quando si applica al Sottoscrittore. Quando si verifica un errore e dopo l'arresto del agente di distribuzione, chiamare sp_helpsubscriptionerrors nel server di distribuzione per recuperare il xact_seqno valore della transazione non riuscita e quindi chiamare sp_setsubscriptionxactseqno, passando questo valore per @xact_seqno. In questo modo si garantisce che vengano elaborati solo i comandi dopo l'elaborazione di questo LSN.

Specificare il valore per 0 @xact_seqno per recapitare tutti i comandi in sospeso nel database di distribuzione al Sottoscrittore.

sp_setsubscriptionxactseqnopotrebbe non riuscire se il agente di distribuzione usa flussi con più sottoscrizioni.

Quando si verifica questo errore, è necessario eseguire l'agente di distribuzione con un flusso di sottoscrizione singolo. Per altre informazioni, vedere Replication Distribution Agent.

Autorizzazioni

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