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.
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
Um usuário adiciona uma coluna à tabela do razão.
ALTER TABLE [Employees] ADD Lastname NVARCHAR(256) NULL;
Um usuário renomeia uma coluna da tabela do razão.
EXEC sp_rename 'dbo.Employees.Lastname', 'Firstname', 'COLUMN';
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];