Bagikan melalui


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:

  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 primer dan tabel riwayat tidak memiliki batasan kunci primer.
  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 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