sys.ledger_table_history (Transact-SQL)
S’applique à : SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance
Capture l’historique protégé par chiffrement des opérations effectuées sur les tables de registre : création de tables de registre, renommage des tables de registre ou vues de registre et suppression de tables de registre.
Pour plus d’informations sur le registre de base de données, consultez Registre.
Nom de la colonne | Type de données | Description |
---|---|---|
object_id | int | ID d’objet de la table de registre. |
schema_name | sysname | Nom du schéma contenant la table de registre. Si l’opération a modifié le nom du schéma, cette colonne capture ce nouveau nom. |
table_name | sysname | Nom de la table de registre. Si l’opération a modifié le nom de la table, cette colonne capture ce nouveau nom. |
ledger_view_schema_name | sysname | Nom du schéma contenant la vue de registre de la table de registre. Si l’opération a modifié le nom du schéma, cette colonne capture ce nouveau nom. |
ledger_view_name | sysname | Nom de la vue de registre pour la table de registre. Si l’opération a modifié le nom de la vue, cette colonne capture ce nouveau nom. |
operation_type | tinyint | Valeur numérique indiquant le type de l’opération 0 = CREATE : création d’une table de registre. 1 = DROP : suppression d’une table de registre. 2 = RENAME : renommage d’une table de registre. 3 = RENAME_VIEW : renommage de la vue de registre d’une table de registre. |
operation_type_desc | nvarchar(60) | Description textuelle de la valeur de operation_type. |
transaction_id | bigint | ID de la transaction qui incluait l’opération sur la table de registre. Il identifie une ligne dans sys.database_ledger_transactions. |
sequence_number | bigint | Numéro de séquence de l’opération au sein de la transaction. |
autorisations
Nécessite l’autorisation VIEW LEDGER CONTENT.
Exemples
Tenez compte de la séquence d’opérations suivante sur les tables de registre.
Un utilisateur crée une table de registre.
CREATE TABLE [Employees] ( EmployeeID INT NOT NULL, Salary Money NOT NULL ) WITH (SYSTEM_VERSIONING = ON, LEDGER = ON); GO
Un utilisateur renomme la table de registre.
EXEC sp_rename 'Employees', 'Employees_Copy';
Un utilisateur renomme la vue de registre de la table de registre.
EXEC sp_rename 'Employees_Ledger', 'Employees_Ledger_Copy';
Un utilisateur supprime la table de registre.
DROP TABLE [Employees];
La requête ci-dessous joint sys.ledger_table_history et sys.database_ledger_transactions pour produire l’historique des modifications effectuées sur les tables de registre, qui comprend l’heure de chaque modification et le nom de l’utilisateur qui l’a déclenchée.
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