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 VeritabanıAzure SQL Yönetilen ÖrneğiSQL database in Microsoft Fabric

Zamansal tablolarda sistem birkaç tutarlılık kontrolü gerçekleştirir. Bu kontroller, şemanın zamansal gereksinimlere uygun olmasını ve verilerin tutarlı ve tutarlı kalmasını sağlar. Açıklama DBCC CHECKCONSTRAINTS ayrıca zaman kontrolleri de sağlar.

Sistem tutarlılığı denetimleri

SYSTEM_VERSIONING ONolarak ayarlanmadan önce geçmiş tablosunda ve geçerli tabloda bir dizi denetim gerçekleştirilir. Bu kontroller şema kontrolleri ve veri kontrolleri (geçmiş tablosu boş değilse) olarak kabul edilir. Sistem ayrıca çalışma zamanı tutarlılık kontrolü de gerçekleştirir.

Şema denetimi

Bir tabloyu zamansal bir tabloya dönüştürdüğünüzde veya değiştirdiğinizde, sistem bu gereksinimlerin karşılandığını doğrular:

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

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

  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

Mevcut bir geçmiş tablosuna bağlantı oluşturduğunuzda, veri tutarlılığı kontrolü yapmayı seçebilirsiniz. Bu veri tutarlılığı kontrolü, mevcut kayıtların örtüşmemesini ve her kaydın zamansal gereksinimleri karşılamasını sağlar. Veri tutarlılığı kontrolü varsayılan olarak çalışır. Veri tutarlılığı kontrolünü, mevcut ve geçmiş tabloları arasındaki veriler senkronize olmadıklarında gerçekleştirin. Örneğin, zaten geçmiş verisini içeren mevcut bir tarih tablosu ekleyerek bunu yapın.

Warning

Sistem saatindeki manuel değişiklikler, sistemin beklenmedik şekilde arızalanmasına neden olur; çünkü örtüşme koşullarını önleyen çalışma zamanı veri tutarlılığı kontrolleri (yani bir kaydın bitiş süresinin başlangıç zamanından az olmaması) başarısız olur.

DBCC CHECKCONSTRAINTS kullanın

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