Pemeriksaan konsistensi sistem tabel temporal

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Microsoft Fabric

Dengan tabel temporal, sistem melakukan beberapa pemeriksaan konsistensi. Pemeriksaan ini memastikan bahwa skema sesuai dengan persyaratan waktu dan data konsisten serta tetap konsisten. Pernyataan DBCC CHECKCONSTRAINTS ini juga menyediakan pemeriksaan temporal.

Pemeriksaan konsistensi sistem

Sebelum SYSTEM_VERSIONING diatur ke ON, serangkaian pemeriksaan dilakukan pada tabel riwayat dan tabel saat ini. Pemeriksaan ini termasuk dalam pemeriksaan skema dan pemeriksaan data (jika tabel riwayat tidak kosong). Sistem juga melakukan pemeriksaan konsistensi runtime.

Pemeriksaan skema

Ketika Anda membuat atau mengubah tabel menjadi tabel temporal, sistem memverifikasi bahwa persyaratan ini terpenuhi:

  1. Nama dan jumlah kolom sama baik di tabel saat ini maupun di tabel riwayat.

  2. Tipe data cocok untuk setiap kolom antara tabel saat ini dan tabel riwayat.

  3. Kolom periode disetel ke NOT NULL.

  4. Tabel saat ini memiliki batasan kunci utama dan tabel riwayat tidak memiliki batasan kunci utama.

  5. Tidak ada kolom IDENTITY yang ditentukan dalam tabel riwayat.

  6. Tidak ada pemicu yang ditentukan dalam tabel riwayat.

  7. Tidak ada kunci asing yang didefinisikan dalam tabel riwayat.

  8. Tidak ada batasan tabel atau kolom yang ditentukan pada tabel riwayat. Namun, nilai kolom default pada tabel riwayat diizinkan.

  9. Tabel riwayat tidak ditempatkan dalam grup file baca-saja.

  10. 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 Anda membuat tautan ke tabel riwayat yang sudah ada, Anda dapat memilih untuk melakukan pemeriksaan konsistensi data. Pemeriksaan konsistensi data ini memastikan bahwa catatan yang ada tidak tumpang tindih dan setiap catatan memenuhi persyaratan waktu. Pemeriksaan konsistensi data berjalan secara default. Lakukan pemeriksaan konsistensi data setiap kali data antara tabel saat ini dan riwayat mungkin tidak sinkron. Misalnya, lakukan saat Anda menggabungkan tabel riwayat yang sudah berisi data riwayat.

Warning

Perubahan manual pada jam sistem menyebabkan sistem gagal secara tak terduga, karena pemeriksaan konsistensi data runtime yang mencegah kondisi tumpang tindih (yaitu bahwa waktu akhir untuk sebuah catatan tidak kurang dari waktu mulai) gagal.

Menggunakan DBCC CHECKCONSTRAINTS

Perintah ini DBCC CHECKCONSTRAINTS mencakup pemeriksaan konsistensi data temporal. Untuk informasi selengkapnya, lihat DBCC CHECKCONSTRAINTS.