sp_replcmds (Transact-SQL)
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure
Retorna os comandos para transações marcadas para replicação. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.
Importante
O sp_replcmds
procedimento deve ser executado apenas para solucionar problemas com a replicação.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_replcmds [ @maxtrans = ] maxtrans
[ ; ]
Argumentos
@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 | A ID do artigo. |
partial_command |
bit | Indica se esse comando é um comando parcial. |
command |
varbinário(1024) | O valor do comando. |
xactid |
binary(10) | ID da transação. |
xact_seqno |
varbinary(16) | O número de seqüência da transação. |
publication_id |
int | A ID da publicação. |
command_id |
int | ID do comando em MSrepl_commands. |
command_type |
int | Tipo de comando. |
originator_srvname |
sysname | Servidor onde a transação originou. |
originator_db |
sysname | Banco de dados onde a transação originou. |
pkHash |
int | Somente para uso interno. |
originator_publication_id |
int | ID da publicação de origem da transação. |
originator_db_version |
int | Versão do banco de dados onde a transação originou. |
originator_lsn |
varbinary(16) | Identifica o LSN (número de sequência de log) 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 executado sp_replcmds
em um determinado banco de dados como o leitor de log.
Esse procedimento pode gerar comandos para tabelas qualificadas pelo proprietário ou pode não qualificar o nome da tabela (o padrão). A adição de nomes das 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 ter o mesmo nome do proprietário.
Os clientes que tentam executar sp_replcmds
no 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 log.
Uma mensagem de aviso número 18759 será adicionada ao log de erros do SQL Server e ao log de aplicativos do Microsoft Windows, se sp_replcmds
não for possível 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
o .