sys.sp_publication_validation (Transact-SQL)

Aplica-se a: SQL ServerAzure SQL Managed Instance

Inicia um pedido de validação de artigo para cada artigo da publicação especificada. Este procedimento armazenado é executado no Publisher no banco de dados de publicação.

Transact-SQL convenções de sintaxe

Sintaxe

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

Arguments

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

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

[ @rowcount_only = ] rowcount_only

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

valor Descrição
0 Realize um checksum compatível com SQL Server 7.0.

Nota: Quando um artigo é filtrado horizontalmente, é realizada uma operação de contagem de linhas em vez de uma operação de soma de verificação.
1 (padrão) Faz apenas uma verificação de contagem de linhas.
2 Realize uma contagem de linhas e um checksum binário.

[ @full_or_fast = ] full_or_fast

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

valor Descrição
0 Faz a contagem total usando COUNT(*).
1 Conta rápido a partir de sysindexes.rows. Contar linhas no sys.sysindexes é mais rápido do que contar linhas na tabela real. No entanto, como o sys.sysindexes é atualizado de forma preguiçosa, a contagem de linhas pode não ser precisa.
2 (padrão) Faz contagem condicional de jejum tentando primeiro o método rápido. Se o método fast mostrar diferenças, reverte para o método completo. Se expected_rowcount for NULL e o procedimento armazenado estiverem a ser usados para obter o valor, é sempre usado um procedimento completo COUNT(*) .

[ @shutdown_agent = ] shutdown_agent

Especifica se o Distribution Agent deve desligar-se 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 desliga.
  • Se 1, o agente de replicação desliga-se após a validação do último artigo.

@publisher [ = ] N'editor'

Especifica um Editor de Server que não seja SQL. @publisher é sysname, com um padrão de NULL.

@publisher não deve ser usado ao pedir validação numa SQL Server Publisher.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Remarks

sp_publication_validation é usado na replicação transacional.

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

Se a sua aplicação tiver Subscritores que atualizam imediatamente, sp_publication_validation pode detetar erros espúrios. sp_publication_validationprimeiro calcula a contagem de linhas ou soma de verificação no Publisher e depois no Assinante. Como o gatilho de atualização imediata pode propagar uma atualização do Assinante para o Publisher após a contagem de linhas ou o checksum ser concluído no Publisher, mas antes de a contagem de linhas ou soma de verificação ser concluída no Assinante, os valores podem mudar. Para garantir que os valores no Subscritor e no Publisher não mudam durante a validação de uma publicação, pare o serviço Coordenador de Transações Distribuídas da Microsoft (MS DTC) no Publisher durante a validação.

Permissions

Apenas os membros do papel de servidor fixo de sysadmin ou do papel de base de dados fixa db_owner podem executar sp_publication_validation.