Bagikan melalui


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:

  1. Nama dan jumlah kolom sama dalam tabel saat ini dan tabel riwayat.

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

  3. Kolom titik diatur ke NOT NULL.

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

  5. Tidak ada IDENTITY kolom 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 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.