sys.sp_verify_database_ledger (Transact-SQL)

Si applica a: SQL Server 2022 (16.x) Database Azure SQL Istanza gestita di SQL di Azure

Verifica il libro mastro del database e i ledgger di tabella. Per ogni riga nella sys.database_ledger vista, la stored procedure:

  1. Ricompila un valore archiviato nella colonna previous_block_hash della riga.
  2. Controlla se il valore ricalcolate corrisponde al valore attualmente archiviato nella colonna previous_block_hash.
  3. Se l'elenco specificato di digest contiene un digest per il blocco libro mastro rappresentato dalla riga, verifica che il valore ricomputto corrisponda all'hash nel digest.
  4. Se si specifica un nome di tabella libro mastro usando l'argomento table_name , la stored procedure verifica un hash di tabella per la tabella specificata, se presente nella colonna table_hashes di sys.database_ledger. In caso contrario, verifica tutti gli hash di tabella esistenti nella colonna table_hashes di , ad eccezione degli hash di sys.database_ledgertabella per le tabelle non esistenti (eliminate). Quando si verifica un hash di tabella per una tabella libro mastro, la stored procedure:
    1. Analizza la tabella di cronologia della tabella libro mastro per ricompilare l'hash della tabella, ovvero un hash di tutte le righe aggiornate dalla transazione rappresentata dalla riga corrente nella sys.database_ledger tabella libro mastro.
    2. Controlla se l'hash della tabella ricalcolate corrisponde al valore archiviato nella colonna table_hashes di sys.database_ledger per la tabella libro mastro specificata.

Inoltre, la stored procedure verifica che tutti gli indici non cluster siano coerenti con la tabella libro mastro specificata. Se non viene specificata alcuna tabella libro mastro, verifica tutti gli indici non cluster per ogni tabella libro mastro esistente a cui viene fatto riferimento nella colonna table_hashes in qualsiasi riga di sys.database_ledger.

Per altre informazioni sul libro mastro del database, vedere Libro mastro.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_verify_database_ledger
    [ @digests = ] 'digests'
    [ , [ @table_name = ] 'table_name' ]

Argomenti

[ @digests = ] 'digests'

Documento JSON contenente un elenco di digest delle transazioni, ognuno dei quali è stato ottenuto eseguendo una query sulla sys.database_ledger_latest_digest vista. Il documento JSON deve contenere almeno un digest.

[ @table_name = ] 'table_name'

Nome della tabella da verificare.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Una riga, con una colonna denominata last_verified_block_id.

Autorizzazioni

Richiede l'autorizzazione VIEW LEDGER CONTENT .