Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
Van Azure SQL Database
Azure SQL Managed Instance SQL Database
in Microsoft Fabric Preview
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.
Schema check
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
IDENTITYkolommen 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.
Warning
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.
Related content
- Temporal tables
- 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