Zelfstudie: Tijdreizen met T-SQL op instructieniveau
In dit artikel leert u hoe u tijdreizen in uw magazijn kunt uitvoeren op instructieniveau met behulp van T-SQL. Met deze functie kunt u gegevens opvragen zoals deze in het verleden zijn weergegeven, binnen een retentieperiode.
Notitie
Momenteel wordt alleen de UTC-tijdzone (Coordinated Universal Time) gebruikt voor tijdreizen.
Tijdreizen
In dit voorbeeld werken we een rij bij en laten we zien hoe u eenvoudig een query kunt uitvoeren op de vorige waarde met behulp van de FOR TIMESTAMP AS OF
queryhint.
Selecteer nieuwe SQL-query op het tabblad Start van het lint.
Plak de volgende code in de query-editor om de weergave
Top10CustomerView
te maken. Selecteer Uitvoeren om de query uit te voeren.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;
Controleer in Explorer of u de zojuist gemaakte weergave
Top10CustomersView
kunt zien door het knooppunt Weergave onderdbo
schema uit te vouwen.Maak nog een nieuwe query, vergelijkbaar met stap 1. Selecteer nieuwe SQL-query op het tabblad Start van het lint.
Plak de volgende code in de query-editor. Hiermee wordt de
TotalIncludingTax
kolomwaarde bijgewerkt naar200000000
de record met deSaleKey
waarde van22632918
. Selecteer Uitvoeren om de query uit te voeren./*Update the TotalIncludingTax value of the record with SaleKey value of 22632918*/ UPDATE [dbo].[fact_sale] SET TotalIncludingTax = 200000000 WHERE SaleKey = 22632918;
Plak de volgende code in de query-editor. De
CURRENT_TIMESTAMP
T-SQL-functie retourneert de huidige UTC-tijdstempel als een datum/tijd. Selecteer Uitvoeren om de query uit te voeren.SELECT CURRENT_TIMESTAMP;
Kopieer de tijdstempelwaarde die wordt geretourneerd naar het Klembord.
Plak de volgende code in de query-editor en vervang de tijdstempelwaarde door de huidige tijdstempelwaarde die is verkregen uit de vorige stap. De syntaxisnotatie van de tijdstempel is
YYYY-MM-DDTHH:MM:SS[.FFF]
.Verwijder de volgnullen, bijvoorbeeld:
2024-04-24T20:59:06.097
.In het volgende voorbeeld wordt de lijst met tien belangrijkste klanten
TotalIncludingTax
geretourneerd, inclusief de nieuwe waarde voorSaleKey
22632918
. Selecteer Uitvoeren om de query uit te voeren./*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');
Plak de volgende code in de query-editor en vervang de tijdstempelwaarde in een tijd voordat u het updatescript uitvoert om de
TotalIncludingTax
waarde bij te werken. Hiermee wordt de lijst met tien belangrijkste klanten geretourneerd voordat deTotalIncludingTax
lijst voorSaleKey
22632918 is bijgewerkt. Selecteer Uitvoeren om de query uit te voeren./*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');
Voor meer voorbeelden gaat u naar Procedure: Query's uitvoeren op tijdreizen op instructieniveau.