Delen via


sys.sp_verify_database_ledger (Transact-SQL)

van toepassing op: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed Instance

Controleert het database-grootboek en de tabel ledgers. De opgeslagen procedure voor elke rij in de sys.database_ledger weergave:

  1. Hiermee wordt een waarde opnieuw gecomputeerd die is opgeslagen in de kolom previous_block_hash van de rij.
  2. Controleert of de opnieuw ingevulde waarde overeenkomt met de waarde die momenteel is opgeslagen in de kolom previous_block_hash.
  3. Als de opgegeven lijst met samenvattingen een samenvatting voor het grootboekblok bevat dat de rij vertegenwoordigt, wordt de opnieuw gecomputeerde waarde gecontroleerd op de hash in de digest.
  4. Als een grootboektabelnaam is opgegeven met behulp van het argument table_name, controleert de opgeslagen procedure een tabel-hash voor de opgegeven tabel, als deze bestaat in de kolom table_hashes van sys.database_ledger. Anders wordt gecontroleerd of alle tabelhashes in de kolom table_hashes van sys.database_ledger, met uitzondering van tabelhashes voor niet-bestaande (verwijderde) tabellen. Bij het verifiëren van een tabel-hash voor een grootboektabel, wordt de opgeslagen procedure:
    1. Scant de geschiedenistabel van de grootboektabel om de tabelhash opnieuw te compileren. Dit is een hash van alle rijen die zijn bijgewerkt door de transactie die wordt vertegenwoordigd door de huidige rij in sys.database_ledger in de grootboektabel.
    2. Controleert of de hash van de opnieuw gecomputeerde tabel overeenkomt met de waarde die is opgeslagen in de kolom table_hashes van sys.database_ledger voor de opgegeven grootboektabel.

Bovendien controleert de opgeslagen procedure of alle niet-geclusterde indexen consistent zijn met de opgegeven grootboektabel. Als er geen grootboektabel is opgegeven, worden alle niet-geclusterde indexen gecontroleerd voor elke bestaande grootboektabel waarnaar wordt verwezen in de kolom table_hashes in een rij van sys.database_ledger.

Zie Grootboekvoor meer informatie over database-grootboek.

Transact-SQL syntaxisconventies

Syntaxis

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

Argumenten

Belangrijk

Argumenten voor uitgebreide opgeslagen procedures moeten worden ingevoerd in de specifieke volgorde, zoals beschreven in de sectie Syntaxis. Als de parameters niet in de volgorde zijn ingevoerd, treedt er een foutbericht op.

[ @digests = ] 'digests'

Een JSON-document met een lijst met transactiesamenvatingen, die elk zijn verkregen door een query uit te voeren op de sys.database_ledger_latest_digest weergave. Het JSON-document moet ten minste één samenvatting bevatten.

[ @table_name = ] 'table_name'

De naam van de tabel die u wilt verifiëren.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Resultatenset

Eén rij, met één kolom met de naam last_verified_block_id.

Machtigingen

Hiervoor is de machtiging VIEW LEDGER CONTENT vereist.