Jaa


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.

  1. Valitse valintanauhan Aloitus-välilehdestä Uusi SQL-kysely.

    Näyttökuva Uusi SQL-kysely -painikkeen Kangas-portaalista.

  2. Luo näkymä Top10CustomerViewliittä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;
    
  3. Varmista resurssienhallinnassa, että näet juuri luodun näkymän Top10CustomersView laajentamalla Rakenne-kohdassa olevan dbo Näytä-solmun.

    Näyttökuva käyttäjän kuvasta.

  4. Luo toinen uusi kysely, kuten vaiheessa 1. Valitse valintanauhan Aloitus-välilehdestä Uusi SQL-kysely.

  5. Liitä seuraava koodi kyselyeditoriin. Tämä päivittää sarakkeen TotalIncludingTax arvoksi 200000000 tietueen, jonka arvo 22632918on SaleKey . 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;
    
  6. Liitä seuraava koodi kyselyeditoriin. CURRENT_TIMESTAMP T-SQL-funktio palauttaa nykyisen UTC-aikaleiman datetime-arvona. Suorita kysely valitsemalla Suorita .

    SELECT CURRENT_TIMESTAMP;
    
  7. Kopioi leikepöydälle palautettu aikaleiman arvo.

  8. Liitä seuraava koodi kyselyeditoriin ja korvaa aikaleima-arvo edellisessä vaiheessa saadulla aikaleima-arvolla. Aikaleiman syntaksin muoto on YYYY-MM-DDTHH:MM:SS[.FFF].

  9. Poista lopussa olevat nollat, esimerkiksi: 2024-04-24T20:59:06.097.

  10. Seuraava esimerkki palauttaa kymmenen parasta asiakasta sisältävän TotalIncludingTaxluettelon , mukaan lukien uuden arvon kohteelle SaleKey 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');
    
  11. 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.

Seuraava vaihe