Condividi tramite


sp_publication_validation (Transact-SQL)

Si applica a: SQL Server Istanza gestita di SQL di Azure

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

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @publication = ] N'publication'

Nome della pubblicazione. @publication è sysname, senza impostazione predefinita.

[ @rowcount_only = ] rowcount_only

Specifica se restituire solo il conteggio delle righe per la tabella. @rowcount_only è smallint e può essere uno dei valori seguenti.

valore Descrizione
0 Eseguire un checksum compatibile con SQL Server 7.0.

Nota: quando un articolo viene filtrato orizzontalmente, viene eseguita un'operazione di conteggio delle righe anziché un'operazione di checksum.
1 (predefinito) Esegue solo la convalida mediante conteggio delle righe.
2 Esegue la convalida mediante conteggio delle righe e checksum binario.

[ @full_or_fast = ] full_or_fast

Metodo utilizzato per calcolare il conteggio delle righe. @full_or_fast è tinyint e può essere uno dei valori seguenti.

valore Descrizione
0 Esegue il conteggio completo usando COUNT(*).
1 Esegue il conteggio rapido da sysindexes.rows. Il conteggio delle righe in sys.sysindexes è più veloce rispetto al conteggio delle righe nella tabella effettiva. Tuttavia, poiché sys.sysindexes è aggiornato in modo differinte, il conteggio delle righe potrebbe non essere accurato.
2 (predefinito) Esegue un conteggio rapido condizionale eseguendo innanzitutto un tentativo con il metodo rapido. Se il metodo rapido evidenzia delle differenze, viene applicato il metodo completo. Se expected_rowcount è NULL e la stored procedure viene usata per ottenere il valore, viene sempre utilizzata una stored procedure completa COUNT(*) .

[ @shutdown_agent = ] shutdown_agent

Specifica se il agente di distribuzione deve essere arrestato immediatamente al termine della convalida. @shutdown_agent è bit, con il valore predefinito 0.

  • Se 0, l'agente di replica non viene arrestato.
  • Se 1, l'agente di replica viene arrestato dopo la convalida dell'ultimo articolo.

[ @publisher = ] N'publisher'

Specifica un server di pubblicazione non SQL Server. @publisher è sysname, con un valore predefinito .NULL

@publisher non deve essere usato quando si richiede la convalida in un server di pubblicazione di SQL Server.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_publication_validation viene usato nella replica transazionale.

sp_publication_validation può essere chiamato 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 dispone di Sottoscrittori ad aggiornamento immediato, sp_publication_validation potrebbe rilevare errori spuri. sp_publication_validation calcola innanzitutto il conteggio delle righe o il checksum 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, arrestare il servizio Microsoft Distributed Transaction Coordinator (MS DTC) nel server di pubblicazione durante la convalida.

Autorizzazioni

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