Cet article mettra une base pour créer, travailler avec et utiliser des tables temporelles dans SQL Server.
Des tables versées système ont été introduites dans la norme ANSI SQL 2011 et ont été disponibles en fonction de SQL Server 2016 et au-dessus.
Contrairement à un tableau normal qui ne peut afficher et travailler avec les données actuelles, les tables temporelles vous permettent de visualiser et de travailler même avec des données précédemment supprimées. Comme mentionné, cela est possible en raison de la capacité d'un tableau temporel à suivre les modifications apportées aux données d'un tableau.
Le tableau contient deux colonnes clés: Sysstarttime et Sysendtime. Ces deux colonnes sont utilisées pour définir les données existantes et précédentes pour chaque enregistrement dans un tableau. Vous pouvez utiliser des intervalles de temps spécifiques pour voir comment les données d'un tableau ont changé.
Créer une table temporelle
Avant de pouvoir créer une table temporelle, elle doit répondre aux exigences suivantes:
Comment créer une table temporelle: T-SQL
Regardons une simple démonstration de création d'une table temporelle. Considérez l'exemple de requête ci-dessous:
Créer la table DBO.my_temporal_table (Une fois que nous avons exécuté la requête ci-dessus, le serveur SQL créera la table avec le nom spécifié.
Dans le SQL Server Management Studio, vous pouvez afficher une table système versée en étendant l'option Tables dans votre base de données cible:
Notez que le serveur SQL génère automatiquement une table d'historique avec un schéma similaire à celle du tableau des versions système. Cependant, faites attention aux colonnes de la table d'histoire. Notez qu'ils n'ont aucune contrainte.
Considérez l'image illustrée ci-dessous:
Comme vous le verrez, SQL Server génère une table d'historique sous un nom suivant un format spécifique. Pour définir un nom personnalisé pour votre table d'historique, spécifiez-le dans l'instruction Créer la table comme indiqué:
---Ensuite, si vous développez l'option Indexes pour le tableau historique, vous remarquez que SQL Server a généré automatiquement un index en cluster:
En utilisant des tables temporelles
Testons la fonctionnalité des tables temporelles en insérant quelques enregistrements dans le tableau. Considérez l'exemple de requête ci-dessous:
Insérer dans my_temporal_table (id, fname, e-mail, département)Une fois que les exemples de données ont été insérés dans le tableau, nous pouvons les interroger comme:
SELECT * FROM MY_TEMPORAL_TABLE;Vous devriez obtenir une sortie près de celle indiquée ci-dessous comme
Pour comprendre le fonctionnement du tableau des versions système, supprimons et mettons à jour les lignes dans le tableau:
Supprimer de my_temporal_table où département = 'base de données';Ensuite, interrogez les données dans le tableau principal:
SELECT * FROM MY_TEMPORAL_TABLE;Si vous interrogez la table d'histoire, vous devriez voir l'ancienne version des données avec les horodatages corrects.
Conclusion
Ce guide a couvert le concept de table temporelle ou du système dans SQL Server. En utilisant ce guide, vous serez en mesure de suivre l'historique de vos données à l'aide de tables temporelles SQL Server. Nous espérons que vous avez trouvé cet article utile. Découvrez plus d'articles sur les conseils pour les conseils et les tutoriels.