Compartilhar via


sp_replcmds (Transact-SQL)

Retorna os comandos para transações marcadas para replicação. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.

Observação importanteImportante

O procedimento sp_replcmds só deve ser executado para solucionar problemas com replicação.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_replcmds [ @maxtrans = ] maxtrans

Argumentos

  • [ @maxtrans=] maxtrans
    É o número de transações para retorno de 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 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 seqüê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 de trnasação.

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çãoObservaçã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 MicrosoftSQL 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.