sys.sp_verify_database_ledger (Transact-SQL)

Berlaku untuk: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed Instance

Memverifikasi ledger database dan ledger tabel. Untuk setiap baris dalam sys.database_ledger tampilan, prosedur tersimpan:

  1. Komputasi ulang nilai yang disimpan di kolom previous_block_hash baris.
  2. Memeriksa apakah nilai yang dikomputasi ulang cocok dengan nilai yang saat ini disimpan di kolom previous_block_hash.
  3. Jika daftar hash yang ditentukan berisi hash untuk blok ledger yang diwakili baris, itu memverifikasi nilai yang dikomputasi ulang cocok dengan hash dalam hash.
  4. Jika nama tabel ledger ditentukan menggunakan table_name argumen , prosedur tersimpan sys.database_ledgermemverifikasi hash tabel untuk tabel yang ditentukan, jika ada di kolom table_hashes . Jika tidak, ia memverifikasi semua hash tabel yang ada di kolom sys.database_ledgertable_hashes , kecuali hash tabel untuk tabel yang tidak ada (dijatuhkan). Saat memverifikasi hash tabel untuk tabel ledger, prosedur tersimpan:
    1. Memindai tabel riwayat tabel ledger untuk mengolah ulang hash tabel, yang merupakan hash dari semua baris yang diperbarui oleh transaksi yang diwakili oleh baris saat ini dalam sys.database_ledger tabel ledger.
    2. Memeriksa apakah hash tabel yang dikomputasi ulang cocok dengan nilai yang disimpan di kolom sys.database_ledger table_hashes untuk tabel ledger yang diberikan.

Selain itu, prosedur tersimpan memverifikasi semua indeks non-kluster konsisten dengan tabel ledger yang ditentukan. Jika tidak ada tabel ledger yang ditentukan, tabel tersebut memverifikasi semua indeks non-kluster untuk setiap tabel ledger yang ada yang direferensikan dalam kolom table_hashes di baris mana pun dari sys.database_ledger.

Untuk informasi selengkapnya tentang ledger database, lihat Ledger.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

[ @digests = ] 'hash'

Dokumen JSON yang berisi daftar hash transaksi, yang masing-masing telah diperoleh dengan mengkueri sys.database_ledger_latest_digest tampilan. Dokumen JSON harus berisi setidaknya satu hash.

[ @table_name = ] 'table_name'

Nama tabel yang ingin Anda verifikasi.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Satu baris, dengan satu kolom disebut last_verified_block_id.

Izin

Memerlukan izin TAMPILKAN KONTEN LEDGER.