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.
![]() |
---|
La procedura sp_replcmds deve essere eseguita solo per risolvere problemi relativi alla replica. |
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 MicrosoftSQL 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.
Vedere anche