sys.ledger_table_history (Transact-SQL)

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

Menangkap riwayat operasi yang dilindungi secara kriptografis pada tabel ledger: membuat tabel ledger, mengganti nama tabel ledger atau tampilan ledger, dan menghilangkan tabel ledger.

Untuk informasi selengkapnya tentang ledger database, lihat Ledger

Nama kolom Jenis data Deskripsi
object_id int ID objek tabel ledger.
schema_name nama sysname Nama skema yang berisi tabel ledger. Jika operasi telah mengubah nama skema, kolom ini mengambil nama skema baru.
table_name nama sysname Nama tabel ledger. Jika operasi telah mengubah nama tabel, kolom ini akan mengambil nama tabel baru.
ledger_view_schema_name nama sysname Nama skema yang berisi tampilan ledger untuk tabel ledger. Jika operasi telah mengubah nama skema, kolom ini mengambil nama skema baru.
ledger_view_name nama sysname Nama tampilan ledger untuk tabel ledger. Jika operasi telah mengubah nama tampilan, kolom ini akan mengambil nama tampilan baru.
operation_type kecil Nilai numerik yang menunjukkan jenis operasi

0 = CREATE – membuat tabel ledger.
1 = DROP – menjatuhkan tabel ledger.
2 = GANTI NAMA - mengganti nama tabel ledger.
3 = RENAME_VIEW - mengganti nama tampilan ledger untuk tabel ledger.
operation_type_desc nvarchar(60) Deskripsi tekstual nilai operation_type.
transaction_id bigint Transaksi ID yang menyertakan operasi pada tabel ledger. Ini mengidentifikasi baris dalam sys.database_ledger_transactions.
sequence_number bigint Nomor urut operasi dalam transaksi.

Izin

Memerlukan izin TAMPILKAN KONTEN LEDGER.

Contoh

Pertimbangkan urutan operasi berikut pada tabel ledger.

  1. Pengguna membuat tabel ledger.

    CREATE TABLE [Employees]
    (
        EmployeeID INT NOT NULL,
        Salary Money NOT NULL
    )
    WITH (SYSTEM_VERSIONING = ON, LEDGER = ON);
    GO
    
  2. Pengguna mengganti nama tabel ledger.

    EXEC sp_rename 'Employees', 'Employees_Copy';
    
  3. Pengguna mengganti nama tampilan ledger tabel ledger.

    EXEC sp_rename 'Employees_Ledger', 'Employees_Ledger_Copy';
    
  4. Pengguna menghilangkan tabel ledger.

    DROP TABLE [Employees];
    

Kueri di bawah ini menggabungkan sys.ledger_table_history dan sys.database_ledger_transactions untuk menghasilkan riwayat perubahan pada tabel ledger, termasuk waktu masing-masing dan ubah dan nama pengguna yang memicunya.

SELECT 
t.[principal_name]
, t.[commit_time]
, h.[schema_name] + '.' + h.[table_name] AS [table_name]
, h.[ledger_view_schema_name] + '.' + h.[ledger_view_name] AS [view_name]
, h.[operation_type_desc]
FROM sys.ledger_table_history h
JOIN sys.database_ledger_transactions t
ON h.transaction_id = t.transaction_id

Baca juga