Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server 2016 (13.x) et versions ultérieures
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Avec les tables temporelles, le système effectue plusieurs vérifications de cohérence. Ces vérifications garantissent que le schéma respecte les exigences temporelles et que les données sont cohérentes et restent cohérentes. L’énoncé DBCC CHECKCONSTRAINTS fournit également des vérifications temporelles.
Vérifications de cohérence système
Avant que SYSTEM_VERSIONING soit défini sur ON, un ensemble de vérifications sont effectuées sur la table d’historique et sur la table actuelle. Ces vérifications relèvent des vérifications de schéma et des vérifications de données (si la table d’historique n’est pas vide). Le système effectue également une vérification de cohérence à l’exécution.
Vérification du schéma
Lorsque vous créez ou modifiez une table pour en faire une table temporelle, le système vérifie que ces exigences sont remplies :
Les noms et le nombre de colonnes sont identiques à la fois dans le tableau actuel et dans le tableau historique.
Les types de données correspondent pour chaque colonne entre la table actuelle et la table historique.
Les colonnes de période sont définies sur
NOT NULL.La table en cours a une contrainte de clé primaire, et la table d’historique n’a pas de contrainte de clé primaire.
Aucune colonne
IDENTITYn’est définie dans la table de l’historique.Aucun déclencheur n’est défini dans la table de l’historique.
Aucune clé étrangère n’est définie dans la table d’historique.
Aucune contrainte de table ou de colonne n’est définie sur la table de l’historique. Toutefois, les valeurs de colonne par défaut sur la table de l’historique sont autorisées.
La table d’historique n’est pas placée dans un groupe de fichiers en lecture seule.
La table d’historique n’est pas configurée pour le suivi des modifications ou la capture des modifications de données.
Vérification de la cohérence des données
Avant que SYSTEM_VERSIONING soit défini sur ON et dans le cadre d’une opération de langage de manipulation de données (DML), le système effectue la vérification suivante : ValidTo >= ValidFrom
Lorsque vous créez un lien vers une table d’historique existante, vous pouvez choisir de faire une vérification de cohérence des données. Cette vérification de cohérence des données garantit que les enregistrements existants ne se chevauchent pas et que chaque enregistrement répond aux exigences temporelles. Le contrôle de cohérence des données s’exécute par défaut. Effectuez la vérification de cohérence des données chaque fois que les données entre les tables actuelle et historique peuvent être désynchronisées. Par exemple, réalisez-le lorsque vous incorporez une table d’historique existante qui contient déjà des données d’historique.
Avertissement
Des modifications manuelles de l’horloge du système provoquent une défaillance inattendue du système, car les vérifications de cohérence des données à l’exécution qui empêchent les conditions de chevauchement (à savoir que l’heure de fin d’un enregistrement n’est pas inférieure à son heure de début) échouent.
Utilisation de DBCC CHECKCONSTRAINTS
La commande DBCC CHECKCONSTRAINTS inclut des vérifications de cohérence des données temporelles. Pour plus d’informations, consultez DBCC CHECKCONSTRAINTS.
Contenu connexe
- Tables temporelles
- Bien démarrer avec les tables temporelles avec versions gérées par le système
- Partition avec des tables temporelles
- Considérations et limitations liées aux tables temporelles
- Sécurité des tables temporelles
- Gérer la conservation des données historiques dans les tables temporelles versionnées par le système
- Tables temporelles à versionnement géré par le système avec tables optimisées en mémoire
- Vues et fonctions des métadonnées des tables temporelles