Condividi tramite


sp_publication_validation (Transact-SQL)

Inizializza una richiesta di convalida per ogni articolo nella pubblicazione specificata. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [@publication=] **'**publication'
    Nome della pubblicazione. publication è di tipo sysname e non prevede alcun valore predefinito.

  • [@rowcount_only=] rowcount_only
    Indica se restituire solo il conteggio delle righe per la tabella. rowcount_only è di tipo smallint. I possibili valori sono i seguenti.

    Valore

    Descrizione

    0

    Esegue un checksum compatibile con SQL Server 7.0.

    NotaNota
    Quando a un articolo è applicato un filtro orizzontale, viene eseguita un'operazione di conteggio delle righe anziché di checksum.

    1 (predefinito)

    Esegue solo la convalida mediante conteggio delle righe.

    2

    Esegue la convalida mediante conteggio delle righe e checksum binario.

    NotaNota
    Per i Sottoscrittori di SQL Server versione 7.0, viene eseguita solo la convalida con conteggio delle righe.
  • [@full_or_fast=] full_or_fast
    Metodo utilizzato per il conteggio delle righe. full_or_fast è di tipo tinyint. I possibili valori sono i seguenti.

    Valore

    Descrizione

    0

    Esegue un conteggio completo con COUNT(*).

    1

    Esegue un conteggio rapido da sysindexes.rows. Il conteggio delle righe in sys.sysindexes è molto più rapido rispetto al conteggio delle righe nella tabella effettiva. Poiché la tabella sys.sysindexes viene aggiornata in modo non approfondito, è tuttavia possibile che il conteggio delle righe non sia accurato.

    2 (predefinito)

    Esegue un conteggio rapido condizionale provando innanzitutto il metodo rapido. Se il metodo rapido evidenzia delle differenze, viene applicato il metodo completo. Se expected_rowcount è NULL e si utilizza la stored procedure per ottenere il valore, viene sempre eseguita un'operazione COUNT(*) completa.

  • [ @shutdown_agent=] shutdown_agent
    Indica se l'agente di distribuzione deve essere chiuso immediatamente dopo il completamento della convalida. shutdown_agent è di tipo bit e il valore predefinito è 0. Se 0, l'agente di replica non viene chiuso. Se 1, l'agente di replica viene chiuso al termine della convalida dell'ultimo articolo.

  • [ @publisher = ] 'publisher'
    Specifica un server di pubblicazione non SQL Server. publisher è di tipo sysname e il valore predefinito è NULL.

    [!NOTA]

    Non utilizzare publisher per richieste di convalida in un server di pubblicazione SQL Server.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

La stored procedure sp_publication_validation viene utilizzata per la replica transazionale.

È possibile chiamare sp_publication_validation in qualsiasi momento dopo l'attivazione degli articoli associati alla pubblicazione. Questa procedura può essere eseguita in modo manuale una sola volta oppure nell'ambito di un processo con pianificazione periodica per la convalida dei dati.

Se l'applicazione in uso include Sottoscrittori ad aggiornamento immediato, è possibile che sp_publication_validation rilevi errori di vario tipo. sp_publication_validation calcola il conteggio delle righe o il valore di checksum prima nel server di pubblicazione e quindi nel Sottoscrittore. Dato che il trigger per l'aggiornamento immediato può propagare un aggiornamento dal Sottoscrittore al server di pubblicazione dopo l'esecuzione del conteggio delle righe o del checksum nel server di pubblicazione ma prima del completamento di queste operazioni nel Sottoscrittore, i valori potrebbero cambiare. Per assicurarsi che i valori nel Sottoscrittore e nel server di pubblicazione non vengano modificati durante la convalida di una pubblicazione, interrompere il servizio Microsoft Distributed Transaction Coordinator (MS DTC) nel server di pubblicazione durante l'operazione di convalida.

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin o del ruolo predefinito del database db_owner possono eseguire sp_publication_validation.