sp_replcmds (Transact-SQL)
Retorna os comandos para transações marcadas para replicação. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.
Importante |
---|
O procedimento sp_replcmds só deve ser executado para solucionar problemas com replicação. |
Convenções da sintaxe 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 1, que especifica a próxima transação à espera de distribuição.
Conjuntos de resultados
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
article id |
int |
A ID do artigo. |
partial_command |
bit |
Indica se esse é um comando parcial ou não. |
command |
varbinary(1024) |
O valor de comando. |
xactid |
binary(10) |
ID da transação. |
xact_seqno |
varbinary(16) |
O número de sequê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 leitura de log na replicação transacional.
A replicação trata o primeiro cliente que executa sp_replcmds dentro de 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.
Observação |
---|
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. |
Clientes que tentam executar sp_replcmds dentro do mesmo banco de dados recebem 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 18759 será adicionada ao log de erros do Microsoft SQL Server e ao log do aplicativo do Microsoft Windows se sp_replcmds não puder 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.
Consulte também
Referência
Procedimentos armazenados do sistema (Transact-SQL)