Creare e usare tabelle del libro mastro append-only
Si applica a: SQL Server 2022 (16.x) Database Azure SQL Istanza gestita di SQL di Azure
Questo articolo spiega come creare una tabella del libro mastro di solo accodamento. Successivamente, verranno inseriti dei valori nella tabella del libro mastro di solo accodamento e verranno eseguiti tentativi di aggiornamento ai dati. Infine, verranno visualizzati i risultati usando la vista del libro mastro. Verrà usato un esempio di sistema di accesso con scheda chiave per una struttura, che è un modello di sistema di solo accodamento. Nell'esempio viene esaminata in modo pratico la relazione tra la tabella del libro mastro di solo accodamento e la vista del libro mastro.
Per altre informazioni, vedere Tabelle del libro mastro di solo accodamento.
Prerequisiti
Creare una tabella del libro mastro di solo accodamento
Verrà creata una KeyCardEvents
tabella con lo schema seguente.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
EmployeeID | int | ID univoco del dipendente che accede all'edificio |
AccessOperationDescription | nvarchar (MAX) | L'operazione di accesso del dipendente |
Timestamp | datetime2 | Data e ora in cui il dipendente ha eseguito l'accesso all'edificio |
Usare SQL Server Management Studio o Azure Data Studio per creare un nuovo schema e una tabella denominata
[AccessControl].[KeyCardEvents]
.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));
Aggiungere un nuovo evento di accesso all’edificio nella tabella
[AccessControl].[KeyCardEvents]
con i valori seguenti.INSERT INTO [AccessControl].[KeyCardEvents] VALUES ('43869', 'Building42', '2020-05-02T19:58:47.1234567');
Visualizzare il contenuto della tabella KeyCardEvents e specificare le colonne GENERATED ALWAYS aggiunte alla tabella del libro mastro di solo accodamento.
SELECT * ,[ledger_start_transaction_id] ,[ledger_start_sequence_number] FROM [AccessControl].[KeyCardEvents];
Visualizzare il contenuto della visualizzazione libro mastro KeyCardEvents insieme alla visualizzazione di sistema delle transazioni libro mastro per identificare chi ha aggiunto i record nella tabella.
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;
Provare ad aggiornare la tabella
KeyCardEvents
modificandoEmployeeID
da43869
a34184.
UPDATE [AccessControl].[KeyCardEvents] SET [EmployeeID] = 34184;
Verrà visualizzato un messaggio di errore che indica che gli aggiornamenti non sono consentiti per la tabella del libro mastro di solo accodamento.
Autorizzazioni
La creazione di tabelle del libro mastro di solo accodamento richiede l'autorizzazione ENABLE LEDGER
. Per altre informazioni sulle autorizzazioni riguardanti le tabelle del libro mastro, vedere Autorizzazioni.