Tutoriel : voyage dans le temps à l’aide de T-SQL au niveau de l’instruction
Dans cet article, découvrez comment voyager dans votre entrepôt au niveau de l’instruction à l’aide de T-SQL. Cette fonctionnalité vous permet d’interroger des données telles qu’elles apparaissent dans le passé, dans une période de rétention.
Remarque
Actuellement, seul le fuseau horaire UTC (Temps universel coordonné) est utilisé pour le temps de trajet.
Voyage dans le temps
Dans cet exemple, nous allons mettre à jour une ligne et montrer comment interroger facilement la valeur précédente à l’aide de l’indicateur de requête FOR TIMESTAMP AS OF
.
Dans l'onglet Accueil du ruban, sélectionnez Nouvelle requête SQL.
Dans l’éditeur de requête, collez le code suivant pour créer la vue
Top10CustomerView
. Sélectionnez Exécuter pour exécuter la requête.CREATE VIEW dbo.Top10CustomersView AS SELECT TOP (10) FS.[CustomerKey], DC.[Customer], SUM(FS.TotalIncludingTax) AS TotalSalesAmount FROM [dbo].[dimension_customer] AS DC INNER JOIN [dbo].[fact_sale] AS FS ON DC.[CustomerKey] = FS.[CustomerKey] GROUP BY FS.[CustomerKey], DC.[Customer] ORDER BY TotalSalesAmount DESC;
Dans l’Explorateur, vérifiez que vous pouvez voir la vue
Top10CustomersView
nouvellement créée en développant le nœud Vue sous le schémadbo
.Créez une autre requête, similaire à l’étape 1. Dans l'onglet Accueil du ruban, sélectionnez Nouvelle requête SQL.
Dans l'éditeur de requête, collez le code suivant. La valeur de la colonne
TotalIncludingTax
est ainsi mise à jour et devient200000000
pour l’enregistrement dont la valeurSaleKey
est22632918
. Sélectionnez Exécuter pour exécuter la requête./*Update the TotalIncludingTax value of the record with SaleKey value of 22632918*/ UPDATE [dbo].[fact_sale] SET TotalIncludingTax = 200000000 WHERE SaleKey = 22632918;
Dans l'éditeur de requête, collez le code suivant. La fonction T-SQL
CURRENT_TIMESTAMP
renvoie l’horodateur UTC actuel en tant que DateHeure. Sélectionnez Exécuter pour exécuter la requête.SELECT CURRENT_TIMESTAMP;
Copiez la valeur de l’horodateur renvoyée dans votre presse-papiers.
Collez le code suivant dans l’éditeur de requête et remplacez la valeur de l’horodateur par la valeur de l’horodateur actuel obtenue à l’étape précédente. Le format de syntaxe de l’horodateur est
YYYY-MM-DDTHH:MM:SS[.FFF]
.Supprimez les zéros de fin, par exemple :
2024-04-24T20:59:06.097
.L’exemple suivant renvoie la liste des dix premiers clients par
TotalIncludingTax
, y compris la nouvelle valeur deSaleKey
22632918
. Sélectionnez Exécuter pour exécuter la requête./*View of Top10 Customers as of today after record updates*/ SELECT * FROM [WideWorldImporters].[dbo].[Top10CustomersView] OPTION (FOR TIMESTAMP AS OF '2024-04-24T20:59:06.097');
Collez le code suivant dans l’éditeur de requête et remplacez la valeur d’horodateur par une heure avant l’exécution du script de mise à jour pour mettre à jour la valeur
TotalIncludingTax
. Cette action renverrait la liste des dix premiers clients avant la mise à jour deTotalIncludingTax
pourSaleKey
22632918. Sélectionnez Exécuter pour exécuter la requête./*View of Top10 Customers as of today before record updates*/ SELECT * FROM [WideWorldImporters].[dbo].[Top10CustomersView] OPTION (FOR TIMESTAMP AS OF '2024-04-24T20:49:06.097');
Pour plus d’exemples, consultez la page Aide et astuces : interroger à l’aide d’un temps de trajet au cours d’une instruction.