Sdílet prostřednictvím


sys.sp_verify_database_ledger (Transact-SQL)

platí pro: SQL Server 2022 (16.x) azure SQL Databaseazure SQL Managed Instance

Ověří registr databáze a registru tabulek. Pro každý řádek v zobrazení sys.database_ledger uložená procedura:

  1. Přepočítá hodnotu uloženou ve sloupci previous_block_hash řádku.
  2. Zkontroluje, jestli přepočítané hodnoty odpovídají hodnotě aktuálně uložené ve sloupci previous_block_hash.
  3. Pokud zadaný seznam hodnot hash obsahuje hodnotu hash pro blok registru, který řádek představuje, ověří přepočítané hodnoty odpovídající hodnotě hash v hodnotě hash.
  4. Pokud je název tabulky registru zadán pomocí argumentu table_name, uložená procedura ověří hodnotu hash tabulky pro zadanou tabulku, pokud existuje ve sloupci table_hashes sys.database_ledger. V opačném případě ověří všechny hodnoty hash tabulky existující ve sloupci table_hashes sys.database_ledgers výjimkou hodnot hash tabulek pro neexistující (vyřazené) tabulky. Při ověřování hodnoty hash tabulky pro tabulku registru uložená procedura:
    1. Prohledá tabulku historie tabulky registru, aby znovu zkompilovala hodnotu hash tabulky, což je hodnota hash všech řádků aktualizovaných transakcí reprezentovanou aktuálním řádkem v sys.database_ledger v tabulce registru.
    2. Zkontroluje, jestli hodnota hash přepočítané tabulky odpovídá hodnotě uložené ve sloupci table_hashes sys.database_ledger pro danou tabulku registru.

Uložená procedura navíc ověřuje, že všechny neclusterované indexy jsou konzistentní se zadanou tabulkou registru. Pokud není zadána žádná tabulka registru, ověřuje všechny neclusterované indexy pro každou existující tabulku registru odkazovanou ve sloupci table_hashes v libovolném řádku sys.database_ledger.

Další informace o registru databáze naleznete v tématu registru.

Transact-SQL konvence syntaxe

Syntax

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

Argumenty

Důležitý

Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.

[ @digests = ]digests

Dokument JSON obsahující seznam hodnot hash transakcí, z nichž každý byl získán dotazováním sys.database_ledger_latest_digest zobrazení. Dokument JSON musí obsahovat alespoň jeden digest.

[ @table_name = ] 'table_name'

Název tabulky, kterou chcete ověřit.

Návratové hodnoty kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

Jeden řádek s jedním sloupcem s názvem last_verified_block_id.

Dovolení

Vyžaduje oprávnění obsahu ZOBRAZIT HLAVNÍ KNIHY.