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.
Na karcie Narzędzia główne na wstążce wybierz pozycję Nowe zapytanie SQL.
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;
W Eksploratorze sprawdź, czy nowo utworzony widok
Top10CustomersView
jest widoczny, rozwijając węzeł Widok w schemaciedbo
.Utwórz kolejne nowe zapytanie podobne do kroku 1. Na karcie Narzędzia główne na wstążce wybierz pozycję Nowe zapytanie SQL.
W edytorze zapytań wklej następujący kod. Spowoduje to zaktualizowanie
TotalIncludingTax
wartości200000000
kolumny dla rekordu, który ma wartość .22632918
SaleKey
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;
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;
Skopiuj wartość znacznika czasu zwróconą do schowka.
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]
.Usuń końcowe zera, na przykład:
2024-04-24T20:59:06.097
.Poniższy przykład zwraca listę dziesięciu pierwszych klientów według
TotalIncludingTax
wartości , w tym nową wartość dla elementuSaleKey
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');
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ą dlaSaleKey
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.