Compartilhar via


sp_replcmds (Transact-SQL)

Aplica-se a:SQL ServerInstâ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

Importante

Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção 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 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_replcmdse 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_replcmdso .