Aracılığıyla paylaş


Öğ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.

  1. Şeridin Giriş sekmesinden Yeni SQL sorgusu'nu seçin.

    Yeni SQL sorgusu düğmesinin Doku portalındaki ekran görüntüsü.

  2. Sorgu düzenleyicisinde aşağıdaki kodu yapıştırarak görünümünü Top10CustomerViewoluş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;
    
  3. 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.

    Kullanıcının görüntüsünün ekran görüntüsü.

  4. 1. Adıma benzer başka bir yeni sorgu oluşturun. Şeridin Giriş sekmesinden Yeni SQL sorgusu'nu seçin.

  5. Sorgu düzenleyicisinde aşağıdaki kodu yapıştırın. Bu, değerine sahip SaleKey kayıt için sütun değerini 200000000 22632918olarak 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;
    
  6. 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;
    
  7. Döndürülen zaman damgası değerini panonuza kopyalayın.

  8. 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].

  9. Sondaki sıfırları kaldırın, örneğin: 2024-04-24T20:59:06.097.

  10. Aşağıdaki örnek, tarafından ilk on müşterinin TotalIncludingTaxlistesini döndürür ve bunun için SaleKey 22632918yeni 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');
    
  11. 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çin SaleKey güncelleştirilmeden önce TotalIncludingTax 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.

Sonraki adım