Compartilhar via


sp_publication_validation (Transact-SQL)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Inicia uma solicitação de validação de artigo para cada artigo na publicação especificada. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_publication_validation
    [ @publication = ] N'publication'
    [ , [ @rowcount_only = ] rowcount_only ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

Argumentos

@publication [ = ] N'publicação'

O nome da publicação. @publication é sysname, sem padrão.

@rowcount_only [ = ] rowcount_only

Especifica se deve retornar apenas a contagem de linhas da tabela. @rowcount_only é smallint e pode ser um dos seguintes valores.

Valor Descrição
0 Execute uma soma de verificação compatível com SQL Server 7.0.

Observação: Quando um artigo é filtrado horizontalmente, uma operação de contagem de linhas é executada em vez de uma operação de soma de verificação.
1 (padrão) Só execute uma verificação de número de linhas.
2 Execute uma verificação de número de linhas e soma de verificação binária.

@full_or_fast [ = ] full_or_fast

O método usado para calcular a contagem de linhas. @full_or_fast é tinyint e pode ser um dos seguintes valores.

Valor Descrição
0 A contagem total usando COUNT(*).
1 O jejum conta a partir de sysindexes.rows. A contagem de linhas em sys.sysindexes é mais rápida do que a contagem de linhas na tabela real. No entanto, como sys.sysindexes é atualizado lentamente, a contagem de linhas pode não ser precisa.
2 (padrão) Efetua contagem rápida condicional tentando primeiro o método rápido. Se o método rápido mostrar diferenças, reverterá ao método completo. Se expected_rowcount for NULL e o procedimento armazenado estiver sendo usado para obter o valor, um full COUNT(*) sempre será usado.

@shutdown_agent [ = ] shutdown_agent

Especifica se o Distribution Agent deve ser desligado imediatamente após a conclusão da validação. @shutdown_agent é bit, com um padrão de 0.

  • Se 0, o agente de replicação não for desligado.
  • Se 1, o agente de replicação será desligado depois que o último artigo for validado.

@publisher [ = ] N'editor'

Especifica um Publicador não-SQL Server. @publisher é sysname, com um padrão de NULL.

@publisher não deve ser usado ao solicitar validação em um Publicador do SQL Server.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

sp_publication_validation é usado na replicação transacional.

sp_publication_validation podem ser chamados a qualquer momento após a ativação dos artigos associados à publicação. O procedimento pode ser executado manualmente (uma vez) ou como parte de um trabalho agendado regularmente que valida a data.

Se o aplicativo tiver assinantes de atualização imediata, sp_publication_validation o poderá detectar erros falsos. sp_publication_validation primeiro calcula a contagem de linhas ou a soma de verificação no Publicador e, em seguida, no Assinante. Como o gatilho de atualização imediata pode propagar e atualizar do Assinante para o Publicador após a conclusão do número de linhas ou da soma de verificação no Publicador, mas antes que o número de linhas ou a soma de verificação estejam concluídos no Assinante, os valores podem alterar. Para garantir que os valores no Assinante e no Publicador não sejam alterados durante a validação de uma publicação, interrompa o serviço MS DTC (Coordenador de Transações Distribuídas da Microsoft) no Publicador durante a validaçã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_publication_validationo .