Kurz: Cestování časem s využitím T-SQL na úrovni příkazu (Preview)
V tomto článku se dozvíte, jak v tomto článku cestovat ve skladu na úrovni prohlášení pomocí jazyka T-SQL. Tato funkce umožňuje dotazovat se na data, která se zobrazují v minulosti během doby uchovávání.
Poznámka:
V současné době se pro časovou cestu používá pouze časové pásmo UTC (Coordinated Universal Time).
Časová cesta
V tomto příkladu aktualizujeme řádek a ukážeme, jak pomocí nápovědy k dotazu snadno zadat dotaz na FOR TIMESTAMP AS OF
předchozí hodnotu.
Na kartě Domů na pásu karet vyberte Nový dotaz SQL.
V editoru dotazů vložte následující kód pro vytvoření zobrazení
Top10CustomerView
. Vyberte Spustit a spusťte dotaz.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;
V Průzkumníku ověřte, že nově vytvořené zobrazení
Top10CustomersView
můžete zobrazit rozbalením uzlu Zobrazit vedbo
schématu.Vytvořte další nový dotaz podobný kroku 1. Na kartě Domů na pásu karet vyberte Nový dotaz SQL.
V editoru dotazů vložte následující kód. Tím se
TotalIncludingTax
aktualizuje hodnota200000000
sloupce pro záznam, který máSaleKey
hodnotu22632918
. Vyberte Spustit a spusťte dotaz./*Update the TotalIncludingTax value of the record with SaleKey value of 22632918*/ UPDATE [dbo].[fact_sale] SET TotalIncludingTax = 200000000 WHERE SaleKey = 22632918;
V editoru dotazů vložte následující kód. Funkce
CURRENT_TIMESTAMP
T-SQL vrátí aktuální časové razítko UTC jako datum a čas. Vyberte Spustit a spusťte dotaz.SELECT CURRENT_TIMESTAMP;
Zkopírujte hodnotu časového razítka vrácenou do schránky.
Do editoru dotazů vložte následující kód a nahraďte hodnotu časového razítka aktuální hodnotou časového razítka získanou z předchozího kroku. Formát syntaxe časového razítka je
YYYY-MM-DDTHH:MM:SS[.FFF]
.Odeberte koncové nuly, například:
2024-04-24T20:59:06.097
.Následující příklad vrátí seznam prvních deseti zákazníků podle
TotalIncludingTax
, včetně nové hodnoty proSaleKey
22632918
. Vyberte Spustit a spusťte dotaz./*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');
Do editoru dotazů vložte následující kód a nahraďte hodnotu časového razítka na čas před spuštěním aktualizačního skriptu, aby se hodnota aktualizovala
TotalIncludingTax
. Tím by se vrátil seznam prvních deseti zákazníků předTotalIncludingTax
aktualizací proSaleKey
22632918. Vyberte Spustit a spusťte dotaz./*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');
Další příklady najdete v tématu Postupy: Dotazování pomocí časového cestování na úrovni příkazu.
Další krok
Související obsah
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro