Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
Controleert het database-grootboek en de tabel ledgers. De opgeslagen procedure voor elke rij in de sys.database_ledger
weergave:
- Hiermee wordt een waarde opnieuw gecomputeerd die is opgeslagen in de kolom previous_block_hash van de rij.
- Controleert of de opnieuw ingevulde waarde overeenkomt met de waarde die momenteel is opgeslagen in de kolom previous_block_hash.
- 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.
- 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 vansys.database_ledger
. Anders wordt gecontroleerd of alle tabelhashes in de kolom table_hashes vansys.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:- 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. - 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.
- 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
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.