Aracılığıyla paylaş


Yalnızca ekleme defteri tabloları oluşturup kullanma

Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri Azure SQL VeritabanıAzure SQL Yönetilen Örneği

Bu makale, bir sadece eklenen defter tablosu nasıl oluşturulacağını açıklamaktadır. Ardından, yalnızca eklemeli defter tablonuza değerler ekleyip verilerde güncelleme yapmayı deneyeceksiniz. Son olarak, genel muhasebe görünümünü kullanarak sonuçları görüntüleyebilirsiniz. Bir tesis için kart anahtarı erişim sistemi örneğini kullanacağız ve bu da yalnızca ekle sistemi desenidir. Örneğimiz, yalnızca eklemeli defter tablosu ile buna karşılık gelen defter görünümü arasındaki ilişkiye pratik bir bakış sağlayacaktır.

Daha fazla bilgi için Yalnızca ek olarak eklenen defter tabloları'na bakın.

Önkoşullar

Yalnızca ekleme defteri tablosu oluşturun

Aşağıdaki şemaya sahip bir KeyCardEvents tablo oluşturacağız.

Sütun adı Veri türü Description
Çalışan Kimliği int Binaya erişen çalışanın benzersiz kimliği
ErişimOperasyonAçıklaması nvarchar (MAX) Çalışanın sistem erişim işlemi
Zaman Damgası datetime2 Çalışanın binaya erişmiş olduğu tarih ve saat
  1. Yeni bir şema ve adlı tablo oluşturmak için SQL Server Management Studio'yu kullanın.

    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));
    
  2. Tabloya [AccessControl].[KeyCardEvents] aşağıdaki değerlerle yeni bir bina erişim olayı ekleyin.

    INSERT INTO [AccessControl].[KeyCardEvents]
    VALUES ('43869', 'Building42', '2020-05-02T19:58:47.1234567');
    
  3. KeyCardEvents tablonuzun içeriğini görüntüleyin ve yalnızca ekleme kayıt defteri tablonuza eklenen GENERATED ALWAYS sütunlarını belirtin.

    SELECT *
         ,[ledger_start_transaction_id]
         ,[ledger_start_sequence_number]
    FROM [AccessControl].[KeyCardEvents];
    
  4. Tabloya kayıt ekleyen kişileri belirlemek için KeyCardEvents kayıt defteri görünümünüzün içeriğini ve genel muhasebe hareketleri sistem görünümünü görüntüleyin.

     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;
    
  5. KeyCardEvents tablosunu EmployeeID olarak 4386934184. olarak değiştirerek güncellemeyi deneyin

    UPDATE [AccessControl].[KeyCardEvents] SET [EmployeeID] = 34184;
    

    Yalnızca ekleme kayıt defteri tablonuz için güncelleştirmelere izin verilmediğini belirten bir hata iletisi alırsınız.

    Yalnızca ekleme hata iletisini gösteren ekran görüntüsü.

Permissions

Ekleme yapılabilir defter tabloları oluşturmak için ENABLE LEDGER iznine ihtiyaç vardır. Kayıt defteri tablolarıyla ilgili izinler hakkında daha fazla bilgi için bkz. İzinler.