Compartilhar via


sys.ledger_column_history (Transact-SQL)

Aplica-se a: SQL Server 2022 (16.x) Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Captura o histórico de operações protegido com criptografia em colunas de tabelas do razão: adição, renomeação e remoção de colunas.

Para obter mais informações sobre o razão do banco de dados, confira Razão

Nome da coluna Tipo de dados Descrição
object_id int A ID do objeto da tabela do razão.
column_id int A ID da coluna em uma tabela do razão.
column_name sysname O nome da coluna em uma tabela do razão. Se a operação alterar o nome da coluna, essa coluna vai capturar o novo nome da coluna.
operation_type tinyint O valor numérico que indica o tipo da operação

0 = CREATE – Criar uma coluna durante a criação da tabela que contém a coluna usando CREATE TABLE.
1 = ADD – Adicionar uma coluna em uma tabela do razão usando ALTER TABLE/ADD COLUMN.
2 = RENAME – Renomear uma coluna em uma tabela do razão.
3 = DROP – Remover uma coluna em uma tabela do razão.
operation_type_desc nvarchar(60) Descrição textual do valor de operation_type.
transaction_id bigint Uma ID de transação exclusiva para o banco de dados (corresponde a uma ID de transação no log de transações do banco de dados).
sequence_number bigint O número da sequência da operação dentro da transação.

Permissões

Exige a permissão VIEW LEDGER CONTENT.

Exemplos

Considere a sequência de operações a seguir nas tabelas do razão.

  1. Um usuário cria uma tabela do razão.

    CREATE TABLE [Employees]
    (
        EmployeeID INT NOT NULL,
        Salary Money NOT NULL
    )
    WITH (SYSTEM_VERSIONING = ON, LEDGER = ON);
    GO
    
  2. Um usuário adiciona uma coluna à tabela do razão.

    ALTER TABLE [Employees] ADD Lastname NVARCHAR(256) NULL;
    
  3. Um usuário renomeia uma coluna da tabela do razão.

    EXEC sp_rename 'dbo.Employees.Lastname', 'Firstname', 'COLUMN';
    
  4. Um usuário remove uma coluna da tabela do razão.

    ALTER TABLE [Employees] DROP COLUMN Firstname;
    

A consulta abaixo une sys.ledger_table_history e sys.database_ledger_transactions para produzir o histórico de alterações nas colunas da tabela do razão, incluindo o horário de cada uma e o nome do usuário que a disparou.

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];

Confira também