Opetusohjelma: Aikamatkustus T-SQL:n avulla lausekkeen tasolla
Tässä artikkelissa kerrotaan, miten voit aikamatkustaa varastossa lauseketasolla T-SQL:n avulla. Tämän ominaisuuden avulla voit tehdä kyselyjä tiedoista sellaisina kuin ne näkyivät aiemmin, säilytysajan kuluessa.
Muistiinpano
Tällä hetkellä aikamatkailuun käytetään vain UTC-aikavyöhykettä (Coordinated Universal Time).
Aikamatkustus
Tässä esimerkissä päivitämme rivin ja näytämme, miten voit helposti kysellä edellistä arvoa kyselyvihjeen FOR TIMESTAMP AS OF
avulla.
Valitse valintanauhan Aloitus-välilehdestä Uusi SQL-kysely.
Luo näkymä
Top10CustomerView
liittäen seuraavan koodin kyselyeditoriin. Suorita kysely valitsemalla Suorita .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;
Varmista resurssienhallinnassa, että näet juuri luodun näkymän
Top10CustomersView
laajentamalla Rakenne-kohdassa olevandbo
Näytä-solmun.Luo toinen uusi kysely, kuten vaiheessa 1. Valitse valintanauhan Aloitus-välilehdestä Uusi SQL-kysely.
Liitä seuraava koodi kyselyeditoriin. Tämä päivittää sarakkeen
TotalIncludingTax
arvoksi200000000
tietueen, jonka arvo22632918
onSaleKey
. Suorita kysely valitsemalla Suorita ./*Update the TotalIncludingTax value of the record with SaleKey value of 22632918*/ UPDATE [dbo].[fact_sale] SET TotalIncludingTax = 200000000 WHERE SaleKey = 22632918;
Liitä seuraava koodi kyselyeditoriin.
CURRENT_TIMESTAMP
T-SQL-funktio palauttaa nykyisen UTC-aikaleiman datetime-arvona. Suorita kysely valitsemalla Suorita .SELECT CURRENT_TIMESTAMP;
Kopioi leikepöydälle palautettu aikaleiman arvo.
Liitä seuraava koodi kyselyeditoriin ja korvaa aikaleima-arvo edellisessä vaiheessa saadulla aikaleima-arvolla. Aikaleiman syntaksin muoto on
YYYY-MM-DDTHH:MM:SS[.FFF]
.Poista lopussa olevat nollat, esimerkiksi:
2024-04-24T20:59:06.097
.Seuraava esimerkki palauttaa kymmenen parasta asiakasta sisältävän
TotalIncludingTax
luettelon , mukaan lukien uuden arvon kohteelleSaleKey
22632918
. Suorita kysely valitsemalla Suorita ./*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');
Liitä seuraava koodi kyselyeditoriin ja korvaa aikaleima-arvo aikaan ennen päivityskomentosarjan suorittamista arvon päivittämiseksi
TotalIncludingTax
. Tämä palauttaisi kymmenen parasta asiakasta ennen 22632918 päivitystäTotalIncludingTax
SaleKey
. Suorita kysely valitsemalla Suorita ./*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');
Lisää esimerkkejä on ohjeartikkelissa Toimintatapa: Kysely, joka käyttää aikamatkustusta lausekkeen tasolla.