Membuat dan menggunakan tabel ledger khusus tambahan
Berlaku untuk: SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance
Artikel ini memperlihatkan kepada Anda cara membuat tabel ledger khusus tambahan. Berikutnya, Anda akan menyisipkan nilai dalam tabel ledger khusus tambahan, lalu mencoba memperbarui data. Terakhir, Anda akan melihat hasilnya dengan menggunakan tampilan ledger. Kami akan menggunakan contoh sistem akses kunci kartu untuk fasilitas, yang merupakan pola sistem khusus tambahan. Contoh kami akan memberi Anda pandangan praktis tentang hubungan antara tabel ledger khusus tambahan dan tampilan ledger yang sesuai.
Untuk mengetahui informasi selengkapnya, lihat Tabel ledger khusus tambahan.
Prasyarat
Membuat tabel ledger khusus tambahan
Kami akan membuat tabel KeyCardEvents
dengan skema berikut.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
EmployeeID | int | ID unik karyawan yang mengakses gedung |
AccessOperationDescription | nvarchar (MAX) | Operasi akses karyawan |
Tanda Waktu | tanggalwaktu2 | Tanggal dan waktu karyawan mengakses gedung |
Gunakan SQL Server Management Studio atau Azure Data Studio untuk membuat skema dan tabel baru yang disebut
[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));
Tambahkan kejadian akses gedung baru dalam tabel
[AccessControl].[KeyCardEvents]
dengan nilai berikut.INSERT INTO [AccessControl].[KeyCardEvents] VALUES ('43869', 'Building42', '2020-05-02T19:58:47.1234567');
Tampilkan konten tabel KeyCardEvents Anda dan sebutkan kolom GENERATED ALWAYS yang ditambahkan ke tabel ledger khusus tambahan Anda.
SELECT * ,[ledger_start_transaction_id] ,[ledger_start_sequence_number] FROM [AccessControl].[KeyCardEvents];
Lihat konten tampilan ledger KeyCardEvents Anda bersama dengan tampilan sistem transaksi ledger untuk mengidentifikasi siapa yang menambahkan rekaman ke dalam 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;
Cobalah untuk memperbarui tabel
KeyCardEvents
dengan mengubahEmployeeID
dari43869
ke34184.
UPDATE [AccessControl].[KeyCardEvents] SET [EmployeeID] = 34184;
Anda akan menerima pesan kesalahan yang menyatakan bahwa pembaruan tidak diizinkan untuk tabel ledger khusus tambahan Anda.
Izin
Membuat tabel ledger khusus tambahan memerlukan ENABLE LEDGER
izin. Untuk informasi tentang izin yang terkait dengan tabel ledger, lihat Izin.