Öğretici: Deyim düzeyinde T-SQL kullanarak zaman yolculuğu
Bu makalede, T-SQL kullanarak deponuzda ekstre düzeyinde zaman yolculuğu yapmayı öğrenin. Bu özellik, verileri saklama süresi içinde geçmişte göründüğü gibi sorgulamanıza olanak tanır.
Not
Şu anda, zaman yolculuğu için yalnızca Eşgüdümlü Evrensel Saat (UTC) saat dilimi kullanılmaktadır.
Zaman yolculuğu
Bu örnekte, bir satırı güncelleştirecek ve sorgu ipucunu kullanarak önceki değeri kolayca sorgulamayı FOR TIMESTAMP AS OF
göstereceğiz.
Şeridin Giriş sekmesinden Yeni SQL sorgusu'nu seçin.
Sorgu düzenleyicisinde aşağıdaki kodu yapıştırarak görünümünü
Top10CustomerView
oluşturun. Sorguyu yürütmek için Çalıştır'ı seçin.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;
Gezgin'de şema altındaki
dbo
Görünüm düğümünü genişleterek yeni oluşturulan görünümüTop10CustomersView
görebildiğinizi doğrulayın.1. Adıma benzer başka bir yeni sorgu oluşturun. Şeridin Giriş sekmesinden Yeni SQL sorgusu'nu seçin.
Sorgu düzenleyicisinde aşağıdaki kodu yapıştırın. Bu, değerine sahip
SaleKey
kayıt için sütun değerini200000000
22632918
olarak güncelleştirirTotalIncludingTax
. Sorguyu yürütmek için Çalıştır'ı seçin./*Update the TotalIncludingTax value of the record with SaleKey value of 22632918*/ UPDATE [dbo].[fact_sale] SET TotalIncludingTax = 200000000 WHERE SaleKey = 22632918;
Sorgu düzenleyicisinde aşağıdaki kodu yapıştırın.
CURRENT_TIMESTAMP
T-SQL işlevi geçerli UTC zaman damgasını tarih saat olarak döndürür. Sorguyu yürütmek için Çalıştır'ı seçin.SELECT CURRENT_TIMESTAMP;
Döndürülen zaman damgası değerini panonuza kopyalayın.
Aşağıdaki kodu sorgu düzenleyicisine yapıştırın ve zaman damgası değerini önceki adımdan alınan geçerli zaman damgası değeriyle değiştirin. Zaman damgası söz dizimi biçimi şeklindedir
YYYY-MM-DDTHH:MM:SS[.FFF]
.Sondaki sıfırları kaldırın, örneğin:
2024-04-24T20:59:06.097
.Aşağıdaki örnek, tarafından ilk on müşterinin
TotalIncludingTax
listesini döndürür ve bunun içinSaleKey
22632918
yeni değeri de içerir. Sorguyu yürütmek için Çalıştır'ı seçin./*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');
Aşağıdaki kodu sorgu düzenleyicisine yapıştırın ve değeri güncelleştirmek
TotalIncludingTax
için güncelleştirme betiğini yürütmeden önceki bir zamana zaman damgası değerini değiştirin. Bu, 22632918 içinSaleKey
güncelleştirilmeden önceTotalIncludingTax
ilk on müşterinin listesini döndürür. Sorguyu yürütmek için Çalıştır'ı seçin./*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');
Daha fazla örnek için Nasıl yapılır: Deyim düzeyinde zaman yolculuğu kullanarak sorgulama adresini ziyaret edin.