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 procedura sp_replcmds deve essere eseguita solo per risolvere i problemi relativi alla replica.

Convenzioni di sintassi Transact-SQL

Sintassi

  
sp_replcmds [ @maxtrans = ] maxtrans  

Argomenti

[ @maxtrans = ] maxtrans Numero di transazioni su cui restituire informazioni. maxtrans è int, con un valore predefinito pari a 1, che specifica la successiva transazione in attesa della distribuzione.

Set di risultati

Nome colonna Tipo di dati Descrizione
ID articolo 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:

sp_replcmds viene usato dal processo di lettura log nella replica transazionale.

La replica considera il primo client che esegue 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.

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 all'interno dello 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 Microsoft SQL Server che al registro 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 essere eseguiti sp_replcmds.

Vedi anche

Messaggi di errore
sp_repldone (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
Stored procedure di sistema (Transact-SQL)