Testy spójności systemu tabel czasowych
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
Azure SQL Database
Azure SQL Managed Instance
SQL Database w usłudze Microsoft Fabric
W przypadku tabel czasowych system przeprowadza kilka kontroli spójności, aby upewnić się, że schemat jest zgodny z wymaganiami dotyczącymi czasu, a dane są spójne i pozostają spójne. Ponadto kontrole czasowe są dostępne w instrukcji DBCC CHECKCONSTRAINTS
.
Sprawdzanie spójności systemu
Zanim SYSTEM_VERSIONING
zostanie ustawione na ON
, wykonywany jest zestaw testów na tabeli historii oraz bieżącej tabeli. Te testy są pogrupowane w sprawdzanie schematu i sprawdzanie danych (jeśli tabela historii nie jest pusta). Ponadto system wykonuje również kontrolę spójności środowiska uruchomieniowego.
Sprawdzanie schematu
Podczas tworzenia lub zmieniania tabeli w celu utworzenia tabeli czasowej system sprawdza, czy spełnione są wymagania:
Nazwy i liczba kolumn są takie same zarówno w bieżącej tabeli, jak i tabeli historii.
Typy danych są zgodne dla każdej kolumny między bieżącą tabelą a tabelą historii.
Kolumny okresu są ustawione na
NOT NULL
.Bieżąca tabela ma ograniczenie klucza podstawowego, a tabela historii nie ma ograniczenia klucza podstawowego.
W tabeli historii nie zdefiniowano żadnych kolumn
IDENTITY
.W tabeli historii nie zdefiniowano żadnych wyzwalaczy.
W tabeli historii nie zdefiniowano kluczy obcych.
W tabeli historii nie zdefiniowano żadnych ograniczeń tabeli ani kolumn. Jednak domyślne wartości kolumn w tabeli historii są dozwolone.
Tabela historii nie jest umieszczana w grupie plików tylko do odczytu.
Tabela historii nie jest skonfigurowana do śledzenia zmian ani przechwytywania danych zmian.
Sprawdzanie spójności danych
Przed ustawieniem SYSTEM_VERSIONING
na ON
i w ramach dowolnej operacji języka manipulowania danymi (DML) system wykonuje następujące sprawdzanie: ValidTo >= ValidFrom
Podczas tworzenia linku do istniejącej tabeli historii można wybrać przeprowadzenie sprawdzania spójności danych. To sprawdzanie spójności danych zapewnia, że istniejące rekordy nie nakładają się i że wymagania czasowe są spełnione dla każdego rekordu. Sprawdzanie spójności danych jest wartością domyślną. Należy przeprowadzić sprawdzanie spójności danych zawsze, gdy dane między bieżącymi i tabelami historii mogą nie być zsynchronizowane. Na przykład w przypadku dołączania istniejącej tabeli historii wypełnionej danymi historii.
Ostrzeżenie
Ręczne zmiany zegara systemowego spowodują nieoczekiwane niepowodzenie systemu, ponieważ sprawdzanie spójności danych środowiska uruchomieniowego w celu uniknięcia nakładających się warunków (a mianowicie czas zakończenia rekordu nie jest krótszy niż czas rozpoczęcia) kończy się niepowodzeniem.
Użyj polecenia DBCC CHECKCONSTRAINTS
Polecenie DBCC CHECKCONSTRAINTS
zawiera kontrole spójności danych czasowych. Aby uzyskać więcej informacji, zobacz DBCC CHECKCONSTRAINTS.
Powiązana zawartość
- tabele czasowe
- Rozpoczynanie pracy z tabelami czasowymi w wersji systemowej
- partycja z tabelami czasowymi
- zagadnienia i ograniczenia dotyczące tabeli temporalnej
- zabezpieczenie tabeli temporalnej
- Zarządzanie przechowywaniem danych historycznych w systemowo wersjonowanych tabelach czasowych
- Systemowo-wersjonowane tabele czasowe z tabelami zoptymalizowanymi do pamięci
- widoki i funkcje metadanych tabel czasowych