Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к: SQL Server 2022 (16.x) и более поздних версий
Управляемого экземпляра Базы данных
SQL Azure SQL Azure
Записывает криптографически защищенный журнал операций со столбцами таблиц реестра: добавление, переименование и удаление столбцов.
Дополнительные сведения о реестре базы данных см. в статье Реестр.
| Имя столбца | Тип данных | Description |
|---|---|---|
| object_id | int | Идентификатор объекта таблицы реестра. |
| column_id | int | Идентификатор столбца в таблице реестра. |
| column_name | sysname | Имя столбца в таблице реестра. Если операция изменила имя столбца, этот столбец записывает новое имя столбца. |
| operation_type | tinyint | Числовое значение, указывающее тип операции. 0 = CREATE — создание столбца в рамках создания таблицы, содержащей столбец, с помощью инструкции CREATE TABLE. 1 = ADD — добавление столбца в таблицу реестра с помощью инструкции ALTER TABLE/ADD COLUMN. 2 = RENAME — переименование столбца в таблице реестра. 3 = DROP — удаление столбца в таблице реестра. |
| operation_type_desc | nvarchar(60) | Текстовое описание значения operation_type. |
| transaction_id | bigint | Уникальный идентификатор транзакции для базы данных (соответствует идентификатору транзакции в журнале транзакций базы данных). |
| sequence_number | bigint | Порядковый номер операции в транзакции. |
Разрешения
Требуется разрешение VIEW LEDGER CONTENT.
Примеры
Рассмотрим следующую последовательность операций с таблицами реестра.
Пользователь создает таблицу реестра.
CREATE TABLE [Employees] ( EmployeeID INT NOT NULL, Salary Money NOT NULL ) WITH (SYSTEM_VERSIONING = ON, LEDGER = ON); GOПользователь добавляет столбец в таблицу реестра.
ALTER TABLE [Employees] ADD Lastname NVARCHAR(256) NULL;Пользователь переименовывает столбец таблицы реестра.
EXEC sp_rename 'dbo.Employees.Lastname', 'Firstname', 'COLUMN';Пользователь удаляет столбец таблицы реестра.
ALTER TABLE [Employees] DROP COLUMN Firstname;
Приведенный ниже запрос объединяет sys.ledger_column_history и sys.database_ledger_transactions для создания журнала изменений в столбцах таблицы реестра, включая время каждого изменения и имя пользователя, инициировавшего его.
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];