Condividi tramite


sp_setsubscriptionxactseqno (Transact-SQL)

Viene utilizzata durante la risoluzione dei problemi e consente di specificare il numero di sequenza del file di log (LSN) della successiva transazione che dovrà essere applicata dall'agente di distribuzione nel Sottoscrittore, in modo che l'agente possa ignorare una transazione non riuscita. Questa stored procedure viene eseguita nel database di sottoscrizione del Sottoscrittore e non è supportata per Sottoscrittori non SQL Server.

Nota di attenzioneAttenzione

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.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [ @publisher= ] 'publisher'
    Nome del server di pubblicazione. publisher è di tipo sysname e non prevede alcun valore predefinito.

  • [ @publisher_db= ] 'publisher_db'
    Nome del database di pubblicazione. publisher_db è di tipo sysname e non prevede alcun valore predefinito. Per un server di pubblicazione non SQL Server, publisher_db corrisponde al nome del database di distribuzione.

  • [ @publication= ] 'publication'
    Nome della pubblicazione. publication è di tipo sysname e non prevede alcun valore predefinito. Quando l'agente di distribuzione è condiviso tra più pubblicazioni, è necessario specificare il valore ALL per publication.

  • [ @xact_seqno= ] xact_seqno
    xact_seqno della transazione che sta causando un errore nel Sottoscrittore. xact_seqno è di tipo varbinary (16) e non prevede alcun valore predefinito.

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 di codice restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

sp_setsubscriptionxactseqno viene utilizzata per la replica transazionale.

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

sp_setsubscriptionxactseqno può essere utilizzata per ignorare una transazione specifica che causa un errore quando viene applicata nel Sottoscrittore. Quando si verifica un errore che causa un'interruzione dell'agente di distribuzione, chiamare sp_helpsubscriptionerrors (Transact-SQL) nel server di distribuzione per recuperare il valore xact_seqno della transazione non riuscita, quindi chiamare sp_setsubscriptionxactseqno passando questo valore per xact_seqno. In questo modo verranno elaborati solo i comandi successivi a questo LSN.

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

sp_setsubscriptionxactseqno può avere esito negativo se l'agente di distribuzione utilizza più flussi di sottoscrizione.

Quando si verifica questo errore, è necessario eseguire l'agente di distribuzione con un flusso di sottoscrizione singolo. Per ulteriori informazioni, vedere Agente distribuzione repliche.

Autorizzazioni

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

Cronologia modifiche

Aggiornamento del contenuto

Modifica della definizione per l'argomento @xact_seqno. L'argomento deve contenere il valore xact_seqno della transazione che non è stato possibile applicare al Sottoscrittore. La definizione precedente specificava la transazione successiva a quella che ha provocando l'errore. Non era corretta.