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 wurden temporale Prüfungen zur DBCC CHECKCONSTRAINTS
-Anweisung hinzugefügt.
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 wurden auf NOT NULLfestgelegt.
- 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, führt das System die folgende Überprüfung durch, die auch im Rahmen jedes DML-Vorgangs durchgeführt wird: 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. In der Regel sollten Sie 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), dass ein Fehler auftritt.
DBCC CHECKCONSTRAINTS
Der Befehl DBCC CHECKCONSTRAINTS
enthält Konsistenzprüfungen temporaler Daten. Weitere Informationen finden Sie unter DBCC CHECKCONSTRAINTS (Transact-SQL).
Nächste Schritte
- Temporale Tabellen
- Erste Schritte mit temporalen Tabellen mit Systemversionsverwaltung
- Partitionierung mit temporalen Tabellen
- Überlegungen und Einschränkungen zu temporalen Tabellen
- Sicherheit bei temporale Tabellen
- Verwalten der Beibehaltung von Verlaufsdaten in temporalen Tabellen mit Systemversionsverwaltung
- Temporale Tabellen mit Systemversionsverwaltung und speicheroptimierten Tabellen
- Metadatenansichten und Funktionen für temporale Tabellen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für