Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Managed Instance
Retorna os comandos para transações marcadas para replicação. Este procedimento armazenado é executado no Publisher no banco de dados de publicação.
Importante
O procedimento sp_replcmds
deve ser executado apenas para solucionar problemas com a replicação.
Transact-SQL convenções de sintaxe
Sintaxe
sp_replcmds [ @maxtrans = ] maxtrans
[ ; ]
Argumentos
Importante
Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção de sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.
[ @maxtrans = ] maxtrans
O número de transações sobre as quais retornar informações.
@maxtrans é int, com um padrão de 1
, que especifica a próxima transação aguardando distribuição.
Conjunto de resultados
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
article id |
int | O ID do artigo. |
partial_command |
pouco | Indica se esse comando é parcial. |
command |
varbinary(1024) | O valor do comando. |
xactid |
binário(10) | ID da transação. |
xact_seqno |
varbinary(16) | O número de sequência da transação. |
publication_id |
int | O ID da publicação. |
command_id |
int | ID do comando no MSrepl_commands. |
command_type |
int | Tipo de comando. |
originator_srvname |
sysname | Servidor de origem da transação. |
originator_db |
sysname | Base de dados de origem da transação. |
pkHash |
int | Apenas para uso interno. |
originator_publication_id |
int | ID da publicação de origem da transação. |
originator_db_version |
int | Versão da base de dados de origem da transação. |
originator_lsn |
varbinary(16) | Identifica o número de sequência de log (LSN) para o comando na publicação de origem. |
Comentários
sp_replcmds
é usado pelo processo de leitor de log na replicação transacional.
A replicação trata o primeiro cliente que executa sp_replcmds
em um determinado banco de dados como o leitor de log.
Este procedimento pode gerar comandos para tabelas qualificadas pelo proprietário ou não qualificar o nome da tabela (o padrão). A adição de nomes de tabelas qualificados permite a replicação de dados de tabelas de propriedade de um usuário específico em um banco de dados para tabelas de propriedade do mesmo usuário em outro banco de dados.
Como o nome da tabela no banco de dados de origem é qualificado pelo nome do proprietário, o proprietário da tabela no banco de dados de destino deve ser o mesmo nome de proprietário.
Os clientes que tentam executar sp_replcmds
dentro do mesmo banco de dados recebem o erro 18752 até que o primeiro cliente se desconecte. Depois que o primeiro cliente se desconecta, outro cliente pode executar sp_replcmds
e se torna o novo leitor de logs.
Um número de mensagem de aviso 18759 é adicionado ao log de erros do SQL Server e ao log de aplicativos do Microsoft Windows, se sp_replcmds
não conseguir replicar um comando de texto porque o ponteiro de texto não foi recuperado na mesma transação.
Permissões
Somente membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_replcmds
.