sys.ledger_table_history (Transact-SQL)
Si applica a: SQL Server 2022 (16.x) Database Azure SQL 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.
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 rinomina la tabella libro mastro.
EXEC sp_rename 'Employees', 'Employees_Copy';
Un utente rinomina la visualizzazione libro mastro della tabella libro mastro.
EXEC sp_rename 'Employees_Ledger', 'Employees_Ledger_Copy';
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