Compartir vía


sys.ledger_table_history (Transact-SQL)

Se aplica a: SQL Server 2022 (16.x) Azure SQL Database Azure SQL Instancia administrada

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.

  1. 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
    
  2. Un usuario cambia el nombre de la tabla del libro de contabilidad.

    EXEC sp_rename 'Employees', 'Employees_Copy';
    
  3. 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';
    
  4. 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

Consulte también