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
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_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 .