Condividi tramite


sys.ledger_column_history (Transact-SQL)

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

Acquisisce la cronologia delle operazioni protette in modo crittografico su colonne di tabelle mastro: aggiunta, ridenominazione ed eliminazione di colonne.

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.
column_id int ID colonna della colonna in una tabella libro mastro.
column_name sysname Nome della colonna nella tabella libro mastro. Se l'operazione ha modificato il nome della colonna, questa colonna acquisisce il nome della nuova colonna.
operation_type tinyint Valore numerico che indica il tipo dell'operazione

0 = CREATE: creazione di una colonna come parte della creazione della tabella contenente la colonna tramite CREATE TABLE.
1 = ADD : aggiunta di una colonna in una tabella libro mastro tramite ALTER TABLE/ADD COLUMN.
2 = RENAME : ridenominazione di una colonna in una tabella libro mastro.
3 = DROP : eliminazione di una colonna in una tabella libro mastro.
operation_type_desc nvarchar(60) Descrizione testuale del valore di operation_type.
transaction_id bigint ID transazione univoco per il database (corrisponde a un ID transazione nel log delle transazioni del database).
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 aggiunge una colonna alla tabella libro mastro.

    ALTER TABLE [Employees] ADD Lastname NVARCHAR(256) NULL;
    
  3. Un utente rinomina una colonna della tabella libro mastro.

    EXEC sp_rename 'dbo.Employees.Lastname', 'Firstname', 'COLUMN';
    
  4. Un utente elimina una colonna della tabella libro mastro.

    ALTER TABLE [Employees] DROP COLUMN Firstname;
    

La query seguente aggiunge sys.ledger_column_history e sys.database_ledger_transactions per produrre la cronologia delle modifiche nelle colonne della tabella 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.[column_name] AS [column_name]
, h.[operation_type_desc]
FROM sys.ledger_column_history h
JOIN sys.database_ledger_transactions t
ON h.transaction_id = t.transaction_id
ORDER BY t.[commit_time];

Vedi anche