Udostępnij za pośrednictwem


Samouczek: podróż w czasie przy użyciu języka T-SQL na poziomie instrukcji

W tym artykule dowiesz się, jak podróżować w magazynie na poziomie instrukcji przy użyciu języka T-SQL. Ta funkcja umożliwia wykonywanie zapytań dotyczących danych w przeszłości w okresie przechowywania.

Uwaga

Obecnie tylko strefa czasowa koordynowanego czasu uniwersalnego (UTC) jest używana do podróży w czasie.

Podróż czasowa

W tym przykładzie zaktualizujemy wiersz i pokażemy, jak łatwo wykonać zapytanie względem poprzedniej FOR TIMESTAMP AS OF wartości przy użyciu wskazówki dotyczącej zapytania.

  1. Na karcie Narzędzia główne na wstążce wybierz pozycję Nowe zapytanie SQL.

    Zrzut ekranu z portalu sieci szkieletowej przycisku Nowe zapytanie SQL.

  2. W edytorze zapytań wklej następujący kod, aby utworzyć widok Top10CustomerView. Wybierz pozycję Uruchom, aby wykonać zapytanie.

    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. W Eksploratorze sprawdź, czy nowo utworzony widok Top10CustomersView jest widoczny, rozwijając węzeł Widok w schemaciedbo.

    Zrzut ekranu przedstawiający obraz użytkownika.

  4. Utwórz kolejne nowe zapytanie podobne do kroku 1. Na karcie Narzędzia główne na wstążce wybierz pozycję Nowe zapytanie SQL.

  5. W edytorze zapytań wklej następujący kod. Spowoduje to zaktualizowanie TotalIncludingTax wartości 200000000 kolumny dla rekordu, który ma wartość .22632918SaleKey Wybierz pozycję Uruchom, aby wykonać zapytanie.

    /*Update the TotalIncludingTax value of the record with SaleKey value of 22632918*/
    UPDATE [dbo].[fact_sale]
    SET TotalIncludingTax = 200000000
    WHERE SaleKey = 22632918;
    
  6. W edytorze zapytań wklej następujący kod. Funkcja CURRENT_TIMESTAMP T-SQL zwraca bieżący znacznik czasu UTC jako data/godzina. Wybierz pozycję Uruchom, aby wykonać zapytanie.

    SELECT CURRENT_TIMESTAMP;
    
  7. Skopiuj wartość znacznika czasu zwróconą do schowka.

  8. Wklej następujący kod w edytorze zapytań i zastąp wartość znacznika czasu bieżącą wartością znacznika czasu uzyskaną z poprzedniego kroku. Format składni znacznika czasu to YYYY-MM-DDTHH:MM:SS[.FFF].

  9. Usuń końcowe zera, na przykład: 2024-04-24T20:59:06.097.

  10. Poniższy przykład zwraca listę dziesięciu pierwszych klientów według TotalIncludingTaxwartości , w tym nową wartość dla elementu SaleKey 22632918. Wybierz pozycję Uruchom, aby wykonać zapytanie.

    /*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. Wklej następujący kod w edytorze zapytań i zastąp wartość znacznika czasu na godzinę przed wykonaniem skryptu aktualizacji w celu zaktualizowania TotalIncludingTax wartości. Spowoduje to zwrócenie listy dziesięciu pierwszych klientów przed zaktualizowaną TotalIncludingTax wersją dla SaleKey 22632918. Wybierz pozycję Uruchom, aby wykonać zapytanie.

    /*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');
    

Aby uzyskać więcej przykładów, odwiedź stronę Instrukcje: wykonywanie zapytań przy użyciu podróży w czasie na poziomie instrukcji.

Następny krok