Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2022 (16.x) dan versi
yang lebih baru 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 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
KeyCardEventsdengan mengubahEmployeeIDdari43869ke34184.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.