Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2022 (16.x) en latere versies
Van Azure SQL Database
Azure SQL Managed Instance
Legt de cryptografisch beschermde geschiedenis van bewerkingen vast op kolommen van grootboektabellen: kolommen toevoegen, hernoemen en verwijderen.
Voor meer informatie over databasegrootboek, zie Ledger
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
| object_id | int | De object-ID van de grootboektabel. |
| column_id | int | De kolom-ID van de kolom in een grootboektabel. |
| column_name | sysname | De naam van de kolom in de grootboektabel. Als de bewerking de kolomnaam heeft veranderd, wordt in deze kolom de nieuwe kolomnaam vastgelegd. |
| operation_type | tinyint | De numerieke waarde geeft het type van de bewerking aan 0 = CREATE – een kolom aanmaken als onderdeel van het maken van de tabel met de kolom met behulp van CREATE TABLE. 1 = ADD – een kolom toevoegen in een grootboektabel, met ALTER TABLE/ADD COLUMN. 2 = HERNOEMEN - het hernoemen van een kolom in een grootboektabel. 3 = DROP - het verwijderen van een kolom in een grootboektabel. |
| operation_type_desc | nvarchar(60) | Tekstuele beschrijving van de waarde van operation_type. |
| transaction_id | bigint | Een transactie-ID die uniek is voor de database (het komt overeen met een transactie-ID in het database-transactielogboek). |
| sequence_number | bigint | Het volgnummer van de bewerking binnen de transactie. |
Permissions
Vereist de toestemming om de inhoud van het hoofdboek te bekijken .
Voorbeelden
Beschouw de volgende reeks bewerkingen op grootboektabellen.
Een gebruiker maakt een grootboektabel aan.
CREATE TABLE [Employees] ( EmployeeID INT NOT NULL, Salary Money NOT NULL ) WITH (SYSTEM_VERSIONING = ON, LEDGER = ON); GOEen gebruiker voegt een kolom toe aan de grootboektabel.
ALTER TABLE [Employees] ADD Lastname NVARCHAR(256) NULL;Een gebruiker hernoemt een kolom van de grootboektabel.
EXEC sp_rename 'dbo.Employees.Lastname', 'Firstname', 'COLUMN';Een gebruiker laat een kolom in de grootboektabel vallen.
ALTER TABLE [Employees] DROP COLUMN Firstname;
De onderstaande query voegt sys.ledger_column_history en sys.database_ledger_transactions toe om de geschiedenis van wijzigingen in de kolommen van de grootboektabel te produceren, inclusief het tijdstip van elke wijziging en de naam van de gebruiker die het heeft getriggerd.
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];