sp_replcmds (Transact-SQL)

Restituisce i comandi per le transazioni contrassegnate per la replica. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Nota importanteImportante

La procedura sp_replcmds deve essere eseguita solo per risolvere problemi relativi alla replica.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_replcmds [ @maxtrans = ] maxtrans

Argomenti

  • [ @maxtrans=] maxtrans
    Numero di transazioni su cui si desidera ottenere informazioni. maxtrans è di tipo int e il valore predefinito è 1, valore che specifica la transazione successiva in attesa di essere distribuita.

Set di risultati

Nome colonna

Tipo di dati

Descrizione

article id

int

ID dell'articolo.

partial_command

bit

Indica se si tratta di un comando parziale.

command

varbinary(1024)

Valore del comando.

xactid

binary(10)

ID della transazione.

xact_seqno

varbinary(16)

Numero di sequenza della transazione.

publication_id

int

ID della pubblicazione.

command_id

int

ID del comando in MSrepl_commands.

command_type

int

Tipo di comando.

originator_srvname

sysname

Server in cui ha origine la transazione.

originator_db

sysname

Database in cui ha origine la transazione.

pkHash

int

Solo per uso interno.

originator_publication_id

int

ID della pubblicazione in cui ha origine la transazione.

originator_db_version

int

Versione del database in cui ha origine la transazione.

originator_lsn

varbinary(16)

Identifica il numero di sequenza del file di log (LSN) per il comando nella pubblicazione di origine.

Osservazioni

La stored procedure sp_replcmds viene utilizzata per il processo dell'agente di lettura log nella replica transazionale.

La replica considera il primo client che esegue sp_replcmds in un determinato database come agente di lettura log.

Questa procedura può generare comandi per tabelle qualificate con il nome del proprietario oppure non qualifica il nome della tabella (impostazione predefinita). L'aggiunta di nomi di tabella qualificati consente di replicare i dati di tabelle di proprietà di un utente specifico di un database in tabelle di proprietà dello stesso utente in un altro database.

Nota

Poiché il nome di tabella nel database di origine è qualificato dal nome del proprietario, per la tabella del database di destinazione è necessario specificare lo stesso nome di proprietario.

I client che tentano di eseguire sp_replcmds nello stesso database ricevono l'errore 18752 fino a quando un client non si disconnette. Dopo la disconnessione del primo client, un altro client può eseguire sp_replcmds e diventare il nuovo agente di lettura log.

Se tramite sp_replcmds non è possibile replicare un comando di testo a causa del mancato recupero del puntatore di testo nella stessa transazione, viene inserito il messaggio di avviso 18759 sia nel log degli errori di Microsoft SQL Server che nel registro applicazioni di Microsoft Windows.

Autorizzazioni

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