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.
Un utente crea una tabella mastro.
CREATE TABLE [Employees] ( EmployeeID INT NOT NULL, Salary Money NOT NULL ) WITH (SYSTEM_VERSIONING = ON, LEDGER = ON); GO
Un utente aggiunge una colonna alla tabella libro mastro.
ALTER TABLE [Employees] ADD Lastname NVARCHAR(256) NULL;
Un utente rinomina una colonna della tabella libro mastro.
EXEC sp_rename 'dbo.Employees.Lastname', 'Firstname', 'COLUMN';
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];