Kontroly konzistence systému dočasných tabulek
platí pro: SQL Server 2016 (13.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
SQL Database v Microsoft Fabric
V dočasných tabulkách systém provádí několik kontrol konzistence, aby se zajistilo, že schéma splňuje požadavky na dočasné a data jsou konzistentní a zůstávají konzistentní. Kromě toho jsou časové kontroly k dispozici v příkazu DBCC CHECKCONSTRAINTS
.
Kontroly konzistence systému
Před nastavením SYSTEM_VERSIONING
na ON
se provede sada kontrol v tabulce historie a aktuální tabulce. Tyto kontroly jsou seskupené do kontrol schématu a kontrol dat (pokud tabulka historie není prázdná). Kromě toho systém také provádí kontrolu konzistence za běhu.
Kontrola schématu
Při vytváření nebo změně tabulky, aby se stala dočasnou tabulkou, systém ověří splnění požadavků:
Názvy a počet sloupců jsou stejné jak v aktuální tabulce, tak v tabulce historie.
Datové typy se shodují pro každý sloupec mezi aktuální tabulkou a tabulkou historie.
Sloupce období jsou nastaveny na
NOT NULL
.Aktuální tabulka má omezení primárního klíče a tabulka historie nemá omezení primárního klíče.
V tabulce historie nejsou definovány žádné
IDENTITY
sloupce.V tabulce historie nejsou definovány žádné aktivační události.
V tabulce historie nejsou definovány žádné cizí klíče.
V tabulce historie nejsou definována žádná omezení tabulky nebo sloupce. Výchozí hodnoty sloupců v tabulce historie jsou však povolené.
Tabulka historie se neumisťuje do skupiny souborů jen pro čtení.
Tabulka historie není nakonfigurovaná pro sledování změn nebo zachytávání dat změn.
Kontrola konzistence dat
Před nastavením SYSTEM_VERSIONING
na ON
a v rámci jakékoli operace jazyka DML (Data Manipulat Language) systém provede následující kontrolu: ValidTo >= ValidFrom
Při vytváření odkazu na existující tabulku historie můžete provést kontrolu konzistence dat. Tato kontrola konzistence dat zajišťuje, že se existující záznamy nepřekrývají a že jsou splněny dočasné požadavky pro každý jednotlivý záznam. Provedení kontroly konzistence dat je výchozí. Kontrolu konzistence dat byste měli provést vždy, když se data mezi aktuálními tabulkami a tabulkami historie nesynchronizují. Například při začlenění existující tabulky historie, která je naplněna daty historie.
Varování
Ruční změny systémových hodin způsobí neočekávaně selhání systému, protože kontroly konzistence dat za běhu brání překrývajícím se podmínkám (konkrétně to, že čas ukončení záznamu není menší než čas spuštění) selže.
Použití KONTROLNÍCH OMEZENÍ DBCC
Příkaz DBCC CHECKCONSTRAINTS
zahrnuje dočasné kontroly konzistence dat. Další informace naleznete v tématu DBCC CHECKCONSTRAINTS.
Související obsah
- časové tabulky
- Začínáme se systémově verzovanými časovými tabulkami
- Oddíl s dočasnými tabulkami
- Časové tabulky - úvahy a omezení
- zabezpečení časových tabulek
- Správa uchovávání historických dat v systémově verzovaných časových tabulkách
- Systémově verzované temporální tabulky s tabulkami optimalizovanými pro paměť
- Zobrazení a funkce metadat časových tabulek