Oktatóanyag: Időutazás a T-SQL-lel egy raktárban
Ebben az oktatóanyagban megtudhatja, hogyan használhat T-SQL-utasításokat az időutazási
Feljegyzés
Ez az oktatóanyag a(z) teljes körű forgatókönyv részét képezi. Az oktatóanyag elvégzéséhez először az alábbi oktatóanyagokat kell elvégeznie:
Az időutazási lekérdezésekkel való munka
Ebben a feladatban megtudhatja, hogyan hozhat létre nézetet az első 10 ügyfélről értékesítés alapján. A következő feladat nézetét fogja használni az időutazó lekérdezések futtatásához.
Győződjön meg arról, hogy a első bemutatóban létrehozott munkaterület nyitva legyen.
A Kezdőlap menüszalagján válassza Új SQL-lekérdezéslehetőséget.
A lekérdezésszerkesztőben illessze be a következő kódot. A kód létrehoz egy
Top10Customers
nevű nézetet. A nézet lekérdezéssel szerzi be az első 10 ügyfelet az értékesítés alapján.--Create the Top10Customers view. CREATE VIEW [dbo].[Top10Customers] 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;
Futtassa a lekérdezést.
A végrehajtás befejezésekor nevezze át a lekérdezést
Create Top 10 Customer View
.A Explorer panelen, a
dbo
séma Nézetek mappájában ellenőrizze, hogy létezik-e aTop10Customers
nézet.Hozzon létre egy új lekérdezést az időutazási lekérdezések használatához.
A lekérdezésszerkesztőben illessze be a következő kódot. A kód frissíti a
TotalIncludingTax
értékét egy ténysor esetében, hogy szándékosan megnövelje az összes értékesítésének az összegét. Az aktuális időbélyeget is lekéri.--Update the TotalIncludingTax for a single fact row to deliberately inflate its total sales. UPDATE [dbo].[fact_sale] SET [TotalIncludingTax] = 200000000 WHERE [SaleKey] = 22632918; --For customer 'Tailspin Toys (Muir, MI)' GO --Retrieve the current (UTC) timestamp. SELECT CURRENT_TIMESTAMP;
Feljegyzés
Az időutazáshoz jelenleg csak az egyezményes világidő (UTC) időzónáját használhatja.
Futtassa a lekérdezést.
A végrehajtás befejezésekor nevezze át a lekérdezést
Time Travel
.Az Eredmények panelen figyelje meg az időbélyeg értékét (az érték az aktuális UTC dátum és idő lesz).
A top 10 jelenlegi ügyfél lekéréséhez egy új lekérdezésszerkesztőbenillessze be az alábbi utasítást. A kód lekéri a 10 vezető ügyfelet a
FOR TIMESTAMP AS OF
lekérdezési útmutató használatával.--Retrieve the top 10 customers as of now. SELECT * FROM [dbo].[Top10Customers] OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
Nevezze át a lekérdezést
Time Travel Now
néven.Térjen vissza a
Time Travel
lekérdezéshez, majd a Másolás paranccsal másolja ki a lekérdezés eredményeit.Térjen vissza a
Time Travel Now
lekérdezéshez, majd cserélje leYOUR_TIMESTAMP
a vágólapra másolt időbélyeggel.Futtassa a lekérdezést, és figyelje meg, hogy a
CustomerKey
második legmagasabb értéke 49 aTailspin Toys (Muir, MI)
esetén.Módosítsa az időbélyeg értékét egy korábbi időpontra úgy, hogy kivon egy percet az időbélyegből.
Futtassa újra a lekérdezést, és figyelje meg, hogy a második felső
CustomerKey
érték 381Wingtip Toys (Sarversville, PA)
.
Borravaló
További időutazási példákért lásd How to: Lekérdezés időutazással utasításszinten.