Aracılığıyla paylaş


Zamana bağlı tablo sistemi tutarlılık denetimleri

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Zamansal tablolarda sistem, şemanın zamana bağlı gereksinimlere uygun olduğundan ve verilerin tutarlı olduğundan ve tutarlı kaldığından emin olmak için çeşitli tutarlılık denetimleri gerçekleştirir. Ayrıca, zamansal denetimler DBCC CHECKCONSTRAINTS deyiminde kullanılabilir.

Sistem tutarlılığı denetimleri

SYSTEM_VERSIONING ONolarak ayarlanmadan önce geçmiş tablosunda ve geçerli tabloda bir dizi denetim gerçekleştirilir. Bu denetimler şema denetimleri ve veri denetimleri (geçmiş tablosu boş değilse) olarak gruplandırılır. Ayrıca, sistem çalışma zamanı tutarlılığı denetimi de gerçekleştirir.

Şema denetimi

Bir tabloyu zamansal tablo olacak şekilde oluştururken veya değiştirirken sistem gereksinimlerin karşılandığını doğrular:

  1. Sütun adları ve sütun sayısı hem geçerli tabloda hem de geçmiş tablosunda aynıdır.

  2. Veri türleri, geçerli tablo ile geçmiş tablosu arasındaki her sütun için eşleşmektedir.

  3. Dönem sütunları NOT NULLolarak ayarlanır.

  4. Geçerli tabloda birincil anahtar kısıtlaması var ve geçmiş tablosunda birincil anahtar kısıtlaması yok.

  5. Geçmiş tablosunda hiçbir IDENTITY sütunu tanımlanmamıştır.

  6. Geçmiş tablosunda hiçbir tetikleyici tanımlanmamıştır.

  7. Geçmiş tablosunda yabancı anahtar tanımlanmadı.

  8. Geçmiş tablosunda tablo veya sütun kısıtlaması tanımlanmamıştır. Ancak, geçmiş tablosundaki varsayılan sütun değerlerine izin verilir.

  9. Geçmiş tablosu salt okunur bir dosya grubuna yerleştirilmiyor.

  10. Geçmiş tablosu değişiklik izleme veya değişiklik verilerini yakalama için yapılandırılmamış.

Veri tutarlılığı denetimi

SYSTEM_VERSIONING ON olarak ve herhangi bir veri işleme dili (DML) işleminin parçası olarak ayarlanmadan önce sistem aşağıdaki denetimi gerçekleştirir: ValidTo >= ValidFrom

Var olan bir geçmiş tablosuna bağlantı oluştururken veri tutarlılığı denetimi gerçekleştirmeyi seçebilirsiniz. Bu veri tutarlılığı denetimi, mevcut kayıtların çakışmamasını ve her kayıt için zamansal gereksinimlerin karşılanmasını sağlar. Veri tutarlılığı denetimini gerçekleştirmek varsayılandır. Geçerli ve geçmiş tabloları arasındaki veriler eşitlenmemiş olduğunda veri tutarlılığı denetimini gerçekleştirmeniz gerekir. Örneğin, geçmiş verileriyle doldurulmuş mevcut bir geçmiş tablosunu eklerken.

Warning

Çalışma zamanı veri tutarlılığı çakışma koşullarını önlemeye yönelik denetimler (bir kaydın bitiş zamanının başlangıç zamanından kısa olmaması) başarısız olduğundan, sistem saatindeki el ile yapılan değişiklikler sistemin beklenmedik bir şekilde başarısız olmasına neden olur.

DBCC CHECKCONSTRAINTS kullanın

DBCC CHECKCONSTRAINTS komutu zamansal veri tutarlılığı denetimlerini içerir. Daha fazla bilgi için bkz. DBCC CHECKCONSTRAINTS.