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 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 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)