sys.ledger_table_history (Transact-SQL)
Se aplica a: SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance
Captura el historial de operaciones protegidas criptográficamente en las tablas de libro de contabilidad: creación de tablas de libro de contabilidad, cambio de nombre de las tablas o vistas de libro de contabilidad y eliminación de tablas de libro de contabilidad.
Para obtener más información sobre el libro de contabilidad de base de datos, consulte Libro de contabilidad.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
object_id | int | Identificador de objeto de la tabla de libro de contabilidad. |
schema_name | sysname | Nombre del esquema que contiene la tabla de libro de contabilidad. Si la operación ha cambiado el nombre del esquema, esta columna captura el nuevo nombre de esquema. |
table_name | sysname | Nombre de la tabla de libro de contabilidad. Si la operación ha cambiado el nombre de la tabla, esta columna captura el nuevo nombre de tabla. |
ledger_view_schema_name | sysname | Nombre del esquema que contiene la vista de libro de contabilidad de la tabla de libro de contabilidad. Si la operación ha cambiado el nombre del esquema, esta columna captura el nuevo nombre de esquema. |
ledger_view_name | sysname | Nombre de la vista de libro de contabilidad de la tabla de libro de contabilidad. Si la operación ha cambiado el nombre de la vista, esta columna captura el nuevo nombre de vista. |
operation_type | tinyint | Valor numérico que indica el tipo de la operación. 0 = CREATE: creación de una tabla de libro de contabilidad. 1 = DROP: eliminación de una tabla de libro de contabilidad. 2 = RENAME: cambio de nombre de una tabla de libro de contabilidad. 3 = RENAME_VIEW: cambio de nombre de la vista de libro de contabilidad de una tabla de libro de contabilidad. |
operation_type_desc | nvarchar(60) | Descripción en texto del valor de operation_type. |
transaction_id | bigint | Transacción del identificador que incluía la operación en la tabla de libro de contabilidad. Identifica una fila en sys.database_ledger_transactions. |
sequence_number | bigint | Número de secuencia de la operación dentro de la transacción. |
Permisos
Requiere el permiso VIEW LEDGER CONTENT.
Ejemplos
Considere la siguiente secuencia de operaciones en tablas de libro de contabilidad.
Un usuario crea una tabla de libro de contabilidad.
CREATE TABLE [Employees] ( EmployeeID INT NOT NULL, Salary Money NOT NULL ) WITH (SYSTEM_VERSIONING = ON, LEDGER = ON); GO
Un usuario cambia el nombre de la tabla del libro de contabilidad.
EXEC sp_rename 'Employees', 'Employees_Copy';
Un usuario cambia el nombre de la vista de libro de contabilidad de la tabla de libro de contabilidad.
EXEC sp_rename 'Employees_Ledger', 'Employees_Ledger_Copy';
Un usuario quita la tabla de libro de contabilidad.
DROP TABLE [Employees];
La siguiente consulta combina sys.ledger_table_history y sys.database_ledger_transactions para generar el historial de cambios realizados en las tablas de libro de contabilidad, donde se reflejan también la hora de cada cambio y el nombre del usuario que lo realizó.
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