sys.ledger_table_history (Transact-SQL)

Si applica a: SQL Server 2022 (16.x) DatabaseSQL di Azure Istanza gestita di SQL di Azure

Acquisisce la cronologia crittografica protetta delle operazioni sulle tabelle libro mastro: creazione di tabelle mastro, ridenominazione di tabelle libro mastro o viste libro mastro e eliminazione di tabelle libro mastro.

Per altre informazioni sul libro mastro del database, vedere Libro mastro

Nome colonna Tipo di dati Descrizione
object_id int ID oggetto della tabella libro mastro.
schema_name sysname Nome dello schema contenente la tabella libro mastro. Se l'operazione ha modificato il nome dello schema, questa colonna acquisisce il nuovo nome dello schema.
table_name sysname Nome della tabella libro mastro. Se l'operazione ha modificato il nome della tabella, questa colonna acquisisce il nuovo nome della tabella.
ledger_view_schema_name sysname Nome dello schema contenente la visualizzazione libro mastro per la tabella libro mastro. Se l'operazione ha modificato il nome dello schema, questa colonna acquisisce il nuovo nome dello schema.
ledger_view_name sysname Nome della vista libro mastro per la tabella libro mastro. Se l'operazione ha modificato il nome della vista, questa colonna acquisisce il nuovo nome della vista.
operation_type tinyint Valore numerico che indica il tipo dell'operazione

0 = CREATE : creazione di una tabella mastro.
1 = DROP : eliminazione di una tabella libro mastro.
2 = RENAME : ridenominazione di una tabella libro mastro.
3 = RENAME_VIEW : ridenominazione della vista libro mastro per una tabella libro mastro.
operation_type_desc nvarchar(60) Descrizione testuale del valore di operation_type.
transaction_id bigint Transazione dell'ID che include l'operazione sulla tabella libro mastro. Identifica una riga in sys.database_ledger_transactions.
sequence_number bigint Numero di sequenza dell'operazione all'interno della transazione.

Autorizzazioni

Richiede l'autorizzazione VIEW LEDGER CONTENT .

Esempi

Si consideri la sequenza di operazioni seguente sulle tabelle libro mastro.

  1. Un utente crea una tabella mastro.

    CREATE TABLE [Employees]
    (
        EmployeeID INT NOT NULL,
        Salary Money NOT NULL
    )
    WITH (SYSTEM_VERSIONING = ON, LEDGER = ON);
    GO
    
  2. Un utente rinomina la tabella libro mastro.

    EXEC sp_rename 'Employees', 'Employees_Copy';
    
  3. Un utente rinomina la visualizzazione libro mastro della tabella libro mastro.

    EXEC sp_rename 'Employees_Ledger', 'Employees_Ledger_Copy';
    
  4. Un utente elimina la tabella libro mastro.

    DROP TABLE [Employees];
    

La query seguente aggiunge sys.ledger_table_history e sys.database_ledger_transactions per produrre la cronologia delle modifiche nelle tabelle libro mastro, inclusi l'ora di ogni modifica e il nome dell'utente che l'ha attivata.

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

Vedi anche