sys.sp_verify_database_ledger (Transact-SQL)
S’applique à : SQL Server 2022 (16.x)base de données Azure SQL Azure SQL Managed Instance
Vérifie le registre de base de données et les registres de table. Pour chaque ligne de la sys.database_ledger
vue, la procédure stockée :
- recalcule une valeur stockée dans la colonne previous_block_hash de la ligne ;
- vérifie si la valeur recalculée correspond à la valeur actuellement stockée dans la colonne previous_block_hash.
- Si la liste spécifiée de synthèses contient une synthèse pour le bloc du registre que la ligne représente, elle vérifie que la valeur recalculée correspond au code de hachage dans la synthèse.
- Si un nom de table de registre est spécifié à l’aide de l’argument
table_name
, la procédure stockée vérifie un hachage de table pour la table spécifiée, s’il existe dans la colonne table_hashes desys.database_ledger
. Sinon, il vérifie tous les hachages de table existants dans la colonne table_hashes de , à l’exception dessys.database_ledger
hachages de table pour les tables non existantes (supprimées). Lors de la vérification d’un hachage de table pour une table de registre, la procédure stockée :- Analyse la table d’historique de la table de registre pour recompiler le hachage de la table, qui est un hachage de toutes les lignes mises à jour par la transaction représentée par la ligne actuelle dans
sys.database_ledger
la table de registre. - Vérifie si le hachage de table recomputé correspond à la valeur stockée dans la colonne table_hashes de la table de
sys.database_ledger
registre donnée.
- Analyse la table d’historique de la table de registre pour recompiler le hachage de la table, qui est un hachage de toutes les lignes mises à jour par la transaction représentée par la ligne actuelle dans
En outre, la procédure stockée vérifie que tous les index non cluster sont cohérents avec la table de registre spécifiée. Si aucune table de registre n’est spécifiée, elle vérifie tous les index non cluster pour chaque table de registre existante référencée dans la colonne table_hashes dans n’importe quelle ligne de sys.database_ledger
.
Pour plus d’informations sur le registre de bases de données, consultez Registre.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_verify_database_ledger
[ @digests = ] 'digests'
[ , [ @table_name = ] 'table_name' ]
Arguments
[ @digests = ] 'synthèses'
Document JSON contenant une liste de synthèses de transactions, chacun d’eux ayant été obtenu en interrogeant la sys.database_ledger_latest_digest
vue. Le document JSON doit contenir au moins une synthèse.
[ @table_name = ] 'nom_table'
Nom de la table à vérifier.
Valeurs des codes de retour
0
(réussite) or 1
(échec).
Jeu de résultats
Une ligne, avec une colonne appelée last_verified_block_id
.
autorisations
Nécessite l’autorisation VIEW LEDGER CONTENT.