Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2022 (16.x) e versioni successive
Database SQL di Azure
Istanza gestita di SQL di Azure
Questo articolo spiega come creare una tabella ledger di sola aggiunta. Successivamente, inserirai dei valori nella tabella ledger di solo inserimento e tenterai quindi di aggiornare i dati. Infine, visualizzerai i risultati utilizzando la vista Registro. Verrà usato un esempio di sistema di accesso con scheda chiave per una struttura, che è un modello di sistema di solo accodamento. Il nostro esempio mostrerà in modo pratico la relazione tra la tabella ledger di sola aggiunta e la vista ledger corrispondente.
Per altre informazioni, vedere tabelle ledger di sola aggiunta.
Prerequisiti
Creare una tabella di registro di sola aggiunta
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 |
| Data e ora | datetime2 | Data e ora in cui il dipendente ha eseguito l'accesso all'edificio |
Usare SQL Server Management Studio per creare un nuovo schema e una nuova 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');Visualizza il contenuto della tabella KeyCardEvents e specifica le colonne GENERATED ALWAYS aggiunte alla tua tabella ledger di sola aggiunta.
SELECT * ,[ledger_start_transaction_id] ,[ledger_start_sequence_number] FROM [AccessControl].[KeyCardEvents];Visualizza il contenuto della vista del registro KeyCardEvents insieme alla vista di sistema delle transazioni del registro per identificare chi ha aggiunto record alla 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
KeyCardEventsmodificandoEmployeeIDda43869a34184.UPDATE [AccessControl].[KeyCardEvents] SET [EmployeeID] = 34184;Verrà visualizzato un messaggio di errore che indica che gli aggiornamenti non sono consentiti per la tabella ledger di sola aggiunta.
Autorizzazioni
La creazione di tabelle ledger di sola aggiunta richiede l'autorizzazione ENABLE LEDGER. Per altre informazioni sulle autorizzazioni riguardanti le tabelle del libro mastro, vedere Autorizzazioni.