Pemeriksaan konsistensi sistem tabel temporal
Berlaku untuk: SQL Server 2016 (13.x) dan database Azure SQL yang lebih baru Azure SQL Managed Instance
Dengan tabel temporal, sistem melakukan beberapa pemeriksaan konsistensi untuk memastikan skema sesuai dengan persyaratan temporal dan data konsisten, dan tetap konsisten. Selain itu, pemeriksaan temporal telah ditambahkan ke DBCC CHECKCONSTRAINTS
pernyataan .
Pemeriksaan konsistensi sistem
Sebelum SYSTEM_VERSIONING diatur ke AKTIF, 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 primer dan tabel riwayat tidak memiliki batasan kunci primer.
- Tidak ada kolom IDENTITY 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 AKTIF dan sebagai bagian dari operasi DML apa pun, 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 rekaman individu. Melakukan pemeriksaan konsistensi data adalah default. Umumnya, Anda harus melakukan pemeriksaan konsistensi data setiap kali data antara tabel saat ini dan riwayat mungkin tidak sinkron, seperti saat menggabungkan tabel riwayat yang ada yang diisi dengan data riwayat.
Peringatan
Perubahan manual pada jam sistem akan menyebabkan sistem gagal secara tiba-tiba karena pemeriksaan konsistensi data runtime yang ada untuk mencegah kondisi tumpang tindih (yaitu bahwa waktu akhir untuk rekaman tidak kurang dari waktu mulainya) akan gagal.
DBCC CHECKCONSTRAINTS
Perintah ini DBCC CHECKCONSTRAINTS
mencakup pemeriksaan konsistensi data temporal. Untuk informasi selengkapnya, lihat DBCC CHECKCONSTRAINTS (Transact-SQL).
Langkah berikutnya
- Tabel Temporal
- Mulai menggunakan Tabel Temporal System-Versioned
- Pemartisian dengan Tabel Temporal
- Pertimbangan dan Batasan Tabel Temporal
- Keamanan Tabel Temporal
- Mengelola Retensi Data Historis dalam Tabel Temporal System-Versioned
- Tabel Temporal Versi Sistem dengan Tabel Memory-Optimized
- Tampilan dan Fungsi Metadata Tabel Temporal
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk