Pemeriksaan konsistensi sistem tabel temporal
Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Database Azure SQL Managed Instance yang lebih baru
Dengan tabel temporal, sistem melakukan beberapa pemeriksaan konsistensi untuk memastikan skema mematuhi persyaratan untuk temporal dan data konsisten, dan tetap konsisten. Selain itu, pemeriksaan temporal tersedia dalam DBCC CHECKCONSTRAINTS
pernyataan .
Pemeriksaan konsistensi sistem
Sebelum SYSTEM_VERSIONING
diatur ke ON
, serangkaian pemeriksaan dilakukan pada tabel riwayat dan tabel saat ini. Pemeriksaan ini dikelompokkan ke dalam pemeriksaan skema dan pemeriksaan data (jika tabel riwayat tidak kosong). Selain itu, sistem juga melakukan pemeriksaan konsistensi runtime.
Pemeriksaan skema
Saat membuat atau mengubah tabel untuk menjadi tabel temporal, sistem memverifikasi bahwa persyaratan terpenuhi:
Nama dan jumlah kolom sama dalam tabel saat ini dan tabel riwayat.
Jenis data cocok untuk setiap kolom antara tabel saat ini dan tabel riwayat.
Kolom titik diatur ke
NOT NULL
.Tabel saat ini memiliki batasan kunci utama dan tabel riwayat tidak memiliki batasan kunci utama.
Tidak ada
IDENTITY
kolom yang ditentukan dalam tabel riwayat.Tidak ada pemicu yang ditentukan dalam tabel riwayat.
Tidak ada kunci asing yang didefinisikan dalam tabel riwayat.
Tidak ada batasan tabel atau kolom yang ditentukan pada tabel riwayat. Namun, nilai kolom default pada tabel riwayat diizinkan.
Tabel riwayat tidak ditempatkan dalam grup file baca-saja.
Tabel riwayat tidak dikonfigurasi untuk pelacakan perubahan atau mengubah pengambilan data.
Pemeriksaan konsistensi data
Sebelum SYSTEM_VERSIONING
diatur ke ON
dan sebagai bagian dari operasi bahasa manipulasi data (DML), sistem melakukan pemeriksaan berikut: ValidTo >= ValidFrom
Saat membuat tautan ke tabel riwayat yang sudah ada, Anda bisa memilih untuk melakukan pemeriksaan konsistensi data. Pemeriksaan konsistensi data ini memastikan bahwa rekaman yang ada tidak tumpang tindih dan persyaratan temporal terpenuhi untuk setiap catatan individu. Melakukan pemeriksaan konsistensi data adalah default. Anda harus melakukan pemeriksaan konsistensi data setiap kali data antara tabel saat ini dan riwayat mungkin tidak sinkron. Misalnya, saat menggabungkan tabel riwayat yang ada yang diisi dengan data riwayat.
Peringatan
Perubahan manual pada jam sistem akan menyebabkan sistem gagal secara tak terduga, karena pemeriksaan konsistensi data runtime untuk mencegah kondisi tumpang tindih (yaitu bahwa waktu akhir untuk rekaman tidak kurang dari waktu mulainya) gagal.
Menggunakan DBCC CHECKCONSTRAINTS
Perintah ini DBCC CHECKCONSTRAINTS
mencakup pemeriksaan konsistensi data temporal. Untuk informasi selengkapnya, lihat DBCC CHECKCONSTRAINTS.
Konten terkait
- Tabel temporal
- Mulai menggunakan tabel temporal versi sistem
- Partisi dengan tabel temporal
- Pertimbangan dan batasan tabel temporal
- Keamanan tabel temporal
- Mengelola retensi data historis dalam tabel temporal versi sistem
- Tabel temporal versi sistem dengan tabel memori yang dioptimalkan
- Tampilan dan fungsi metadata tabel temporal