Systemkonsistenzprüfungen von temporalen Tabellen
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL Managed Instance
Mit temporalen Tabellen führt das System mehrere Konsistenzprüfungen durch, um sicherzustellen, dass das Schema die Anforderungen an temporale Tabellen erfüllt, und dass die Daten konsistent sind und bleiben. Darüber hinaus sind temporale Prüfungen in der DBCC CHECKCONSTRAINTS
-Anweisung verfügbar.
Systemkonsistenzprüfungen
Bevor SYSTEM_VERSIONING
auf ON
festgelegt wird, wird eine Reihe von Überprüfungen für die Verlaufstabelle und die aktuelle Tabelle ausgeführt. Diese Überprüfungen werden in Schemaüberprüfungen und Datenüberprüfungen gruppiert (sofern die Tabelle nicht leer ist). Darüber hinaus führt das System auch eine Konsistenzprüfung der Laufzeit durch.
Schemaüberprüfung
Wenn eine temporale Tabelle erstellt oder eine vorhandene Tabelle dahingehend geändert wird, überprüft das System, ob die Anforderungen erfüllt werden:
Die Namen und die Anzahl der Spalten sind in der aktuellen Tabelle und der Verlaufstabelle identisch.
Die Datentypen jeder Spalte in der aktuellen Tabelle und der Verlaufstabelle entsprechen einander.
Die Zeitraumspalten sind auf
NOT NULL
festgelegt.Die aktuelle Tabelle besitzt eine Primärschlüsseleinschränkung, während die Verlaufstabelle keine Primärschlüsseleinschränkung aufweist.
Es wurden keine
IDENTITY
-Spalten in der Verlaufstabelle definiert.Es wurden keine Trigger in der Verlaufstabelle definiert.
Es wurden keine Fremdschlüssel in der Verlaufstabelle definiert.
Es wurden keine Tabellen- oder Spalteneinschränkungen für die Verlaufstabelle definiert. Standardspaltenwerte sind für die Verlaufstabelle jedoch zulässig.
Die Verlaufstabelle wird nicht in einer schreibgeschützten Dateigruppe platziert.
Die Verlaufstabelle wurde nicht für die Änderungsnachverfolgung oder Change Data Capture konfiguriert.
Datenkonsistenzprüfung
Bevor SYSTEM_VERSIONING
auf ON
festgelegt wird und im Rahmens eines Vorgangs in der Datenbearbeitungssprache (DML) führt das System die folgende Überprüfung durch: ValidTo >= ValidFrom
Wenn Sie einen Link zu einer vorhandenen Verlaufstabelle erstellen, können Sie eine Datenkonsistenzprüfung durchführen. Diese Datenkonsistenzprüfung stellt sicher, dass vorhandene Einträge sich nicht überlappen, und dass temporale Anforderungen für jeden einzelnen Eintrag erfüllt werden. Die Datenkonsistenzprüfung ist standardmäßig aktiviert. Sie sollten die Datenkonsistenzprüfung immer dann durchführen, wenn Daten zwischen der aktuellen und der Verlaufstabelle möglicherweise nicht mehr synchronisiert sind. Dies geschieht z. B., wenn eine vorhandene Verlaufstabelle mit Verlaufsdaten aufgefüllt wird.
Warnung
Manuelle Änderungen an der Systemuhr führen zu unerwarteten Systemfehlern, da bei den Konsistenzprüfungen der Datenlaufzeit, die Überlappungsbedingungen verhindern sollen (d. h. dass die Endzeit für einen Eintrag nicht kleiner als die Startzeit ist), ein Fehler auftritt.
Verwenden von DBCC CHECKCONSTRAINTS
Der Befehl DBCC CHECKCONSTRAINTS
enthält Konsistenzprüfungen temporaler Daten. Weitere Informationen finden Sie unter DBCC CHECKCONSTRAINTS.
Zugehöriger Inhalt
- Temporale Tabellen
- Erste Schritte mit temporalen Tabellen mit Systemversionsverwaltung
- Partitionierung mit temporalen Tabellen
- Überlegungen und Einschränkungen zu temporalen Tabellen
- Sicherheit bei temporalen Tabellen
- Verwalten der Beibehaltung von Verlaufsdaten in temporalen Tabellen mit Systemversionsverwaltung
- Temporale Tabellen mit Systemversionsverwaltung für speicheroptimierte Tabellen
- Metadatenansichten und Funktionen für temporale Tabellen