Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Med temporala tabeller utför systemet flera konsistenskontroller. Dessa kontroller säkerställer att schemat uppfyller temporala krav och att datan är konsekvent och förblir konsekvent. Uttalandet DBCC CHECKCONSTRAINTS ger också tidskontroller.
Systemkonsekvenskontroller
Innan SYSTEM_VERSIONING anges till ONutförs en uppsättning kontroller i historiktabellen och den aktuella tabellen. Dessa kontroller faller under schemakontroller och datakontroller (om historiktabellen inte är tom). Systemet utför också en körtidskonsistenskontroll.
Schemakontroll
När du skapar eller ändrar en tabell för att bli en temporal tabell verifierar systemet att dessa krav är uppfyllda:
Namnen och antalet kolumner är desamma i både den aktuella tabellen och historiktabellen.
Datatyperna matchar för varje kolumn mellan den aktuella tabellen och historiktabellen.
Periodkolumnerna är inställda på
NOT NULL.Den aktuella tabellen har en primärnyckelbegränsning och historiktabellen har ingen primärnyckelbegränsning.
Inga
IDENTITYkolumner definieras i historiktabellen.Inga utlösare definieras i historiktabellen.
Inga främmande nycklar definieras i historiktabellen.
Inga tabell- eller kolumnbegränsningar definieras i historiktabellen. Standardkolumnvärden i historiktabellen tillåts dock.
Historiktabellen placeras inte i en skrivskyddad filgrupp.
Historiktabellen är inte konfigurerad för ändringsspårning eller insamling av ändringsdata.
Kontroll av datakonsekvens
Innan SYSTEM_VERSIONING anges till ON och som en del av en DML-åtgärd (datamanipuleringsspråk) utför systemet följande kontroll: ValidTo >= ValidFrom
När du skapar en länk till en befintlig historiktabell kan du välja att utföra en datakonsistenskontroll. Denna datakonsistenskontroll säkerställer att befintliga poster inte överlappar och att varje post uppfyller temporala krav. Datakonsistenskontrollen körs som standard. Utför datakonsistenskontrollen när data mellan nuvarande och historiktabeller kan vara ur synk. Till exempel, gör det när du inkluderar en befintlig historiktabell som redan innehåller historikdata.
Varning
Manuella ändringar i systemklockan orsakar att systemet oväntat misslyckas, eftersom körtidsdatakonsistenskontroller som förhindrar överlappningsförhållanden (nämligen att sluttiden för en post inte är kortare än starttiden) misslyckas.
Använd DBCC CHECKCONSTRAINTS
Kommandot DBCC CHECKCONSTRAINTS innehåller kontroller av temporal datakonsekvens. Mer information finns i DBCC CHECKCONSTRAINTS.
Relaterat innehåll
- Temporala tabeller
- Kom igång med systemversionsbaserade tidstabeller
- Partitionering med temporära tabeller
- överväganden och begränsningar för tidstabeller
- Säkerhet för temporära tabeller
- Hantera kvarhållning av historiska data i systemversionsbaserade tidstabeller
- systemversionsbaserade tidstabeller med minnesoptimerade tabeller
- vyer och funktioner för temporala tabellmetadata