sp_replcmds (Transact-SQL)
Si applica a: SQL Server Istanza gestita di SQL di Azure
Restituisce i comandi per le transazioni contrassegnate per la replica. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.
Importante
La sp_replcmds
procedura deve essere eseguita solo per risolvere i problemi relativi alla replica.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_replcmds [ @maxtrans = ] maxtrans
[ ; ]
Argomenti
[ @maxtrans = ] maxtrans
Numero di transazioni su cui restituire informazioni. @maxtrans è int, con un valore predefinito , 1
che specifica la transazione successiva in attesa della distribuzione.
Set di risultati
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
article id |
int | ID dell'articolo. |
partial_command |
bit | Indica se questo comando è 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:
sp_replcmds
viene usato dal processo di lettura log nella replica transazionale.
La replica considera il primo client eseguito sp_replcmds
all'interno di un determinato database come lettore di 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.
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 alla disconnessione del primo client. Dopo la disconnessione del primo client, un altro client può eseguire sp_replcmds
e diventa il nuovo lettore di log.
Un messaggio di avviso numero 18759 viene aggiunto sia al log degli errori di SQL Server che al log applicazioni di Microsoft Windows, se sp_replcmds
non è in grado di replicare un comando di testo perché il puntatore di testo non è stato recuperato nella stessa transazione.
Autorizzazioni
Solo i membri del ruolo predefinito del server sysadmin o il ruolo predefinito del database db_owner possono eseguire sp_replcmds
.