Partager via


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.

  1. Dans l'onglet Accueil du ruban, sélectionnez Nouvelle requête SQL.

    Capture d’écran du portail Fabric illustrant le bouton Nouvelle requête SQL.

  2. 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;
    
  3. 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éma dbo.

    Capture d’écran de l’image de l’utilisateur.

  4. Créez une autre requête, similaire à l’étape 1. Dans l'onglet Accueil du ruban, sélectionnez Nouvelle requête SQL.

  5. Dans l'éditeur de requête, collez le code suivant. La valeur de la colonne TotalIncludingTax est ainsi mise à jour et devient 200000000 pour l’enregistrement dont la valeur SaleKey est 22632918. 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;
    
  6. 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;
    
  7. Copiez la valeur de l’horodateur renvoyée dans votre presse-papiers.

  8. 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].

  9. Supprimez les zéros de fin, par exemple : 2024-04-24T20:59:06.097.

  10. L’exemple suivant renvoie la liste des dix premiers clients par TotalIncludingTax, y compris la nouvelle valeur de SaleKey22632918. 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');
    
  11. 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 de TotalIncludingTax pour SaleKey 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.

Étape suivante