Comparteix a través de


sys.sp_verify_database_ledger (Transact-SQL)

Se aplica a: SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance

Comprueba el libro de contabilidad de la base de datos y los libros de contabilidad de la tabla. Para cada fila de la sys.database_ledger vista, el procedimiento almacenado:

  1. Vuelve a calcular un valor almacenado en la columna previous_block_hash de la fila.
  2. Comprueba si el valor recalculado coincide con el valor almacenado actualmente en la columna previous_block_hash.
  3. Si la lista especificada de resúmenes contiene un resumen para el bloque del libro de contabilidad que representa la fila, comprueba que el valor recalculado coincide con el hash en el resumen.
  4. Si se especifica un nombre de tabla de libro de contabilidad mediante el table_name argumento , el procedimiento almacenado comprueba un hash de tabla para la tabla especificada, si existe en la columna table_hashes de sys.database_ledger. De lo contrario, comprueba todos los hashes de tabla existentes en la columna table_hashes de sys.database_ledger, excepto los hash de tabla para las tablas no existentes (quitadas). Al comprobar un hash de tabla para una tabla de libro de contabilidad, el procedimiento almacenado:
    1. Examina la tabla de historial de la tabla de libro de contabilidad para volver a calcular el hash de tabla, que es un hash de todas las filas actualizadas por la transacción representada por la fila actual de sys.database_ledger en la tabla de libro de contabilidad.
    2. Comprueba si el hash de tabla recomputed coincide con el valor almacenado en la columna table_hashes de para la tabla de libro de sys.database_ledger contabilidad especificada.

Además, el procedimiento almacenado comprueba que todos los índices no clúster son coherentes con la tabla de libro de contabilidad especificada. Si no se especifica ninguna tabla de libro de contabilidad, comprueba todos los índices no clúster para cada tabla de libro de contabilidad existente a la que se hace referencia en la columna table_hashes de cualquier fila de sys.database_ledger.

Para obtener más información sobre el libro de contabilidad de base de datos, consulte Libro de contabilidad.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @digests = ] 'digests'

Documento JSON que contiene una lista de resúmenes de transacciones, cada uno de los cuales se ha obtenido consultando la sys.database_ledger_latest_digest vista. El documento JSON debe contener al menos un resumen.

[ @table_name = ] 'table_name'

Nombre de la tabla que desea comprobar.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Una fila, con una columna denominada last_verified_block_id.

Permisos

Requiere el permiso VIEW LEDGER CONTENT.