Partilhar via


sys.sp_verify_database_ledger (Transact-SQL)

Aplica-se a: SQL Server 2022 (16.x) e versões posteriores Azure SQL DatabaseAzure SQL Managed Instance

Verifica o livro-razão do banco de dados e os livros contábeis de tabelas. Para cada linha na visualização sys.database_ledger, o procedimento armazenado:

  1. Recalcula um valor armazenado na coluna previous_block_hash da linha.
  2. Verifica se o valor recalculado corresponde ao valor atualmente armazenado na coluna previous_block_hash.
  3. Se a lista especificada de resumos contiver um resumo para o bloco contábil que a linha representa, ele verificará se o valor recalculado corresponde ao hash no resumo.
  4. Se um nome de tabela contábil for especificado usando o argumento table_name, o procedimento armazenado verificará um hash de tabela para a tabela especificada, se ele existir na coluna table_hashes de sys.database_ledger. Caso contrário, ele verifica todos os hashes de tabela existentes na coluna table_hashes de sys.database_ledger, exceto hashes de tabela para tabelas não existentes (descartadas). Ao verificar um hash de tabela para uma tabela contábil, o procedimento armazenado:
    1. Verifica a tabela de histórico da tabela contábil para recalcular o hash da tabela, que é um hash de todas as linhas atualizadas pela transação representada pela linha atual em sys.database_ledger na tabela contábil.
    2. Verifica se o hash da tabela recalculada corresponde ao valor armazenado na coluna table_hashes de sys.database_ledger para a tabela contábil fornecida.

Além disso, o procedimento armazenado verifica se todos os índices não clusterizados são consistentes com a tabela contábil especificada. Se nenhuma tabela contábil for especificada, ela verificará todos os índices não clusterizados para cada tabela contábil existente referenciada na coluna table_hashes em qualquer linha de sys.database_ledger.

Para obter mais informações sobre o livro-razão do banco de dados, consulte Ledger.

Transact-SQL convenções de sintaxe

Sintaxe

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

Argumentos

Importante

Os argumentos para procedimentos armazenados estendidos devem ser inseridos na ordem específica, conforme descrito na seção de sintaxe. Se os parâmetros forem inseridos fora de ordem, ocorrerá uma mensagem de erro.

[ @digests = ] 'digere'

Um documento JSON contendo uma lista de resumos de transações, cada um dos quais foi obtido consultando a visualização sys.database_ledger_latest_digest. O documento JSON deve conter pelo menos um resumo.

@table_name [ = ] «table_name»

O nome da tabela que você deseja verificar.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Uma linha, com uma coluna chamada last_verified_block_id.

Permissões

Requer a permissão VIEW LEDGER CONTENT.