Consistentiecontroles voor tijdelijke tabellen
Van toepassing op: SQL Server 2016 (13.x) en latere versies
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Met tijdelijke tabellen voert het systeem verschillende consistentiecontroles uit om ervoor te zorgen dat het schema voldoet aan de vereisten voor tijdelijke gegevens en dat de gegevens consistent zijn en consistent blijven. Daarnaast zijn er tijdgebonden controles beschikbaar in de DBCC CHECKCONSTRAINTS
instructie.
Systeemconsistentiecontroles
Voordat SYSTEM_VERSIONING
is ingesteld op ON
, wordt er een set controles uitgevoerd op de geschiedenistabel en de huidige tabel. Deze controles worden gegroepeerd in schemacontroles en gegevenscontroles (als de geschiedenistabel niet leeg is). Daarnaast voert het systeem ook een runtimeconsistentiecontrole uit.
Schemacontrole
Wanneer u een tabel maakt of wijzigt om een tijdelijke tabel te worden, controleert het systeem of aan de vereisten wordt voldaan:
De namen en het aantal kolommen zijn hetzelfde in zowel de huidige tabel als de geschiedenistabel.
De gegevenstypen komen overeen voor elke kolom tussen de huidige tabel en de geschiedenistabel.
De periodekolommen zijn ingesteld op
NOT NULL
.De huidige tabel heeft een primaire-sleutelbeperking en de geschiedenistabel heeft geen primaire-sleutelbeperking.
Er zijn geen
IDENTITY
kolommen gedefinieerd in de geschiedenistabel.Er worden geen triggers gedefinieerd in de geschiedenistabel.
Er zijn geen vreemde sleutels gedefinieerd in de geschiedenis tabel.
Er zijn geen tabel- of kolombeperkingen gedefinieerd in de geschiedenistabel. Standaardkolomwaarden in de geschiedenistabel zijn echter toegestaan.
De geschiedenistabel wordt niet in een alleen-lezen bestandsgroep geplaatst.
De geschiedenistabel is niet geconfigureerd voor het bijhouden van wijzigingen of het vastleggen van wijzigingengegevens.
Controle van gegevensconsistentie
Voordat SYSTEM_VERSIONING
is ingesteld op ON
en als onderdeel van een DML-bewerking (Data Manipulat Language), voert het systeem de volgende controle uit: ValidTo >= ValidFrom
Wanneer u een koppeling naar een bestaande geschiedenistabel maakt, kunt u ervoor kiezen om een gegevensconsistentiecontrole uit te voeren. Deze gegevensconsistentiecontrole zorgt ervoor dat bestaande records niet overlappen en dat aan tijdelijke vereisten wordt voldaan voor elke afzonderlijke record. Het uitvoeren van de gegevensconsistentiecontrole is de standaardinstelling. U moet de consistentiecontrole voor gegevens uitvoeren wanneer de gegevens tussen de huidige en geschiedenistabellen mogelijk niet synchroon zijn. Bijvoorbeeld wanneer een bestaande geschiedenistabel wordt opgenomen die is gevuld met geschiedenisgegevens.
Waarschuwing
Handmatige wijzigingen in de systeemklok leiden ertoe dat het systeem onverwacht mislukt, omdat de runtimegegevensconsistentiecontroles om overlappingsvoorwaarden te voorkomen (namelijk dat de eindtijd voor een record niet minder is dan de begintijd) mislukt.
DBCC CHECKCONSTRAINTS gebruiken
De opdracht DBCC CHECKCONSTRAINTS
bevat tijdelijke controles voor gegevensconsistentie. Zie DBCC CHECKCONSTRAINTSvoor meer informatie.
Verwante inhoud
- tijdelijke tabellen
- Aan de slag met tijdelijke tabellen met systeemversies
- partitioneren met tijdelijke tabellen
- Tijdelijke tabeloverwegingen en -beperkingen
- tijdelijke tabelbeveiliging
- Het bewaren van historische gegevens in tijdelijke tabellen met systeemversies beheren
- Systeemversie-tijdtabellen met geheugen-geoptimaliseerde tabellen
- weergaven en functies van metagegevens van tijdelijke tabellen