Dela via


sys.sp_verify_database_ledger (Transact-SQL)

gäller för: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed Instance

Verifierar databasregistret och tabellligorna. För varje rad i vyn sys.database_ledger, den lagrade proceduren:

  1. Beräknar om ett värde som lagras i kolumnen previous_block_hash på raden.
  2. Kontrollerar om det omberäknade värdet matchar det värde som för närvarande lagras i kolumnen previous_block_hash.
  3. Om den angivna listan med sammandrag innehåller en sammandrag för transaktionsregistret som raden representerar verifierar den att det omberäknade värdet matchar hashen i sammandraget.
  4. Om ett transaktionsregistertabellnamn anges med argumentet table_name verifierar den lagrade proceduren en tabellhash för den angivna tabellen, om den finns i kolumnen table_hashes i sys.database_ledger. Annars verifierar den alla tabell-hashar som finns i kolumnen table_hashes i sys.database_ledger, förutom tabell-hashar för icke-befintliga (borttagna) tabeller. När du verifierar en tabellhash för en transaktionsregistertabell, den lagrade proceduren:
    1. Söker igenom historiktabellen i transaktionsregistret för att beräkna om tabellhashen, vilket är en hash för alla rader som uppdateras av transaktionen som representeras av den aktuella raden i sys.database_ledger i transaktionsregistret.
    2. Kontrollerar om den omberäknade tabellhashen matchar värdet som lagras i kolumnen table_hashes i sys.database_ledger för den angivna transaktionsregistret.

Dessutom verifierar den lagrade proceduren att alla icke-grupperade index överensstämmer med den angivna transaktionsregistret. Om ingen transaktionsregistertabell har angetts verifierar den alla icke-illustrerade index för varje befintlig transaktionsregistertabell som refereras i kolumnen table_hashes i någon rad i sys.database_ledger.

Mer information om databasregister finns i Ledger.

Transact-SQL syntaxkonventioner

Syntax

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

Argument

Viktig

Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.

[ @digests = ] "sammanfattar"

Ett JSON-dokument som innehåller en lista över transaktionssammandrag, som vart och ett har hämtats genom att fråga sys.database_ledger_latest_digest vyn. JSON-dokumentet måste innehålla minst en sammanfattning.

[ @table_name = ] "table_name"

Namnet på den tabell som du vill verifiera.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Resultatuppsättning

En rad med en kolumn som heter last_verified_block_id.

Behörigheter

Kräver behörigheten VIEW LEDGER CONTENT.