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 di 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 è sysname, senza impostazione predefinita.

[ @rowcount_only = ] 'rowcount_only' Indica 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 (impostazione predefinita) Esegue solo la convalida mediante conteggio delle righe.
2 Esegue la convalida mediante conteggio delle righe e checksum binario.

Nota: per i Sottoscrittori di SQL Server versione 7.0, viene eseguita solo una convalida del conteggio delle righe.

[ @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 un conteggio completo con COUNT(*).
1 Esegue il conteggio rapido da sysindexes.rows. Il conteggio delle righe in sys.sysindexes è molto più veloce del conteggio delle righe nella tabella effettiva. Tuttavia, poiché sys.sysindexes viene aggiornato in modo differinte, il conteggio delle righe potrebbe non essere accurato.
2 (impostazione predefinita) 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 usato un conteggio completo(*) .

[ @shutdown_agent = ] 'shutdown_agent'Indica se il agente di distribuzione deve essere arrestato immediatamente al termine della convalida. shutdown_agent è bit, con un valore predefinito pari a 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 = ] 'publisher' Specifica un server di pubblicazione non SQL Server. publisher è sysname, con valore predefinito NULL.

Nota

Non è consigliabile usare publisher 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 prima 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 l'operazione di convalida.

Autorizzazioni

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

Vedi anche

Convalidare i dati nel Sottoscrittore
sp_article_validation (Transact-SQL)
sp_table_validation (Transact-SQL)
Stored procedure di sistema (Transact-SQL)