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 :

  1. recalcule une valeur stockée dans la colonne previous_block_hash de la ligne ;
  2. vérifie si la valeur recalculée correspond à la valeur actuellement stockée dans la colonne previous_block_hash.
  3. 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.
  4. 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 de sys.database_ledger. Sinon, il vérifie tous les hachages de table existants dans la colonne table_hashes de , à l’exception des sys.database_ledgerhachages 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 :
    1. 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.
    2. 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.

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.