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)
Azure SQL Database
Azure SQL Managed Instance
In dit artikel leest u hoe u een grootboektabel met alleen toevoeggegevens maakt. Vervolgens voegt u waarden toe aan uw alleen-toevoegbare grootboektabel en probeert u daarna de gegevens bij te werken. Ten slotte bekijkt u de resultaten met behulp van de grootboekweergave. We gebruiken een voorbeeld van een kaarttoegangssysteem voor een faciliteit, wat een append-only systeempatroon is. In ons voorbeeld krijgt u een praktische kijk op de relatie tussen de append-only-ledgertabel en de bijbehorende grootboekweergave.
Zie Alleen-toevoegen grootboektabellen voor meer informatie.
Vereiste voorwaarden
Een alleen toevoegbare grootboektabel maken
We maken een KeyCardEvents tabel met het volgende schema.
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
| Medewerker-ID | int | De unieke id van de werknemer die toegang heeft tot het gebouw |
| Beschrijving van Toegangsoperatie | nvarchar (MAX) | De toegangsactie van de werknemer |
| Tijdstempel | datetime2 | De datum en tijd waarop de werknemer toegang heeft tot het gebouw |
Gebruik SQL Server Management Studio om een nieuw schema en een nieuwe tabel met de naam
[AccessControl].[KeyCardEvents]te maken.CREATE SCHEMA [AccessControl]; GO CREATE TABLE [AccessControl].[KeyCardEvents] ( [EmployeeID] INT NOT NULL, [AccessOperationDescription] NVARCHAR (1024) NOT NULL, [Timestamp] Datetime2 NOT NULL ) WITH (LEDGER = ON (APPEND_ONLY = ON));Voeg een nieuwe gebeurtenis voor gebouwtoegang toe aan de
[AccessControl].[KeyCardEvents]tabel met de volgende waarden.INSERT INTO [AccessControl].[KeyCardEvents] VALUES ('43869', 'Building42', '2020-05-02T19:58:47.1234567');Bekijk de inhoud van de tabel KeyCardEvents en geef de ALTIJD GEGENEREERDE kolommen op die worden toegevoegd aan de toevoeg-alleen grootboektabel.
SELECT * ,[ledger_start_transaction_id] ,[ledger_start_sequence_number] FROM [AccessControl].[KeyCardEvents];Bekijk de inhoud van de grootboekweergave van KeyCardEvents, samen met de systeemweergave grootboektransacties om te bepalen wie records heeft toegevoegd aan de tabel.
SELECT t.[commit_time] AS [CommitTime] , t.[principal_name] AS [UserName] , l.[EmployeeID] , l.[AccessOperationDescription] , l.[Timestamp] , l.[ledger_operation_type_desc] AS Operation FROM [AccessControl].[KeyCardEvents_Ledger] l JOIN sys.database_ledger_transactions t ON t.transaction_id = l.ledger_transaction_id ORDER BY t.commit_time DESC;Probeer de
KeyCardEventstabel bij te werken doorEmployeeIDte wijzigen van43869naar34184.UPDATE [AccessControl].[KeyCardEvents] SET [EmployeeID] = 34184;Er wordt een foutbericht weergegeven waarin wordt aangegeven dat de updates niet zijn toegestaan voor de tabel met alleen toevoeggegevens.
Permissions
Om grootboektabellen met alleen-toevoegen te maken is de ENABLE LEDGER machtiging vereist. Zie Machtigingen voor meer informatie over machtigingen met betrekking tot grootboektabellen.