sp_replcmds (Transact-SQL)
Aplica-se a: Instância Gerenciada de SQL do Azure do SQL Server
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 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.
Conjuntos de resultados
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
ID do artigo | int | A ID do artigo. |
partial_command | bit | Indica se este é um comando parcial ou não. |
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 que executa 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.
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.
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 Microsoft SQL Server e ao log de aplicativos 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.
Confira também
Mensagens de Erro
sp_repldone (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL)