Tutorial: Viagem no tempo usando T-SQL no nível da instrução (visualização)

Neste artigo, saiba como viajar no tempo em seu armazém no nível da instrução usando o T-SQL. Esse recurso permite que você consulte os dados como eles apareciam no passado, dentro de um período de retenção.

Nota

Atualmente, apenas o fuso horário UTC (Tempo Universal Coordenado) é usado para viagens no tempo.

Viagem no tempo

Neste exemplo, atualizaremos uma linha e mostraremos como consultar facilmente o valor anterior usando a dica de FOR TIMESTAMP AS OF consulta.

  1. Na guia Página Inicial da faixa de opções, selecione Nova consulta SQL.

    Captura de tela do portal Fabric do botão de consulta Novo SQL.

  2. No editor de consultas, cole o código a seguir para criar o modo de exibição Top10CustomerView. Selecione Executar para executar a consulta.

    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. No Explorer, verifique se você pode ver o modo de exibição Top10CustomersView recém-criado expandindo o nó Exibir em dbo esquema.

    Captura de ecrã da imagem do utilizador.

  4. Crie outra nova consulta, semelhante à Etapa 1. Na guia Página Inicial da faixa de opções, selecione Nova consulta SQL.

  5. No editor de consultas, cole o código a seguir. Isso atualiza o valor da TotalIncludingTax coluna para 200000000 para o registro que tem o SaleKey valor de 22632918. Selecione Executar para executar a consulta.

    /*Update the TotalIncludingTax value of the record with SaleKey value of 22632918*/
    UPDATE [dbo].[fact_sale]
    SET TotalIncludingTax = 200000000
    WHERE SaleKey = 22632918;
    
  6. No editor de consultas, cole o código a seguir. A CURRENT_TIMESTAMP função T-SQL retorna o carimbo de data/hora UTC atual como datetime. Selecione Executar para executar a consulta.

    SELECT CURRENT_TIMESTAMP;
    
  7. Copie o valor de carimbo de data/hora retornado para a área de transferência.

  8. Cole o código a seguir no editor de consultas e substitua o valor do carimbo de data/hora pelo valor atual do carimbo de data/hora obtido na etapa anterior. O formato de sintaxe de carimbo de data/hora é YYYY-MM-DDTHH:MM:SS[.FFF].

  9. Remova os zeros à direita, por exemplo: 2024-04-24T20:59:06.097.

  10. O exemplo a seguir retorna a lista dos dez principais clientes por TotalIncludingTax, incluindo o novo valor para SaleKey 22632918. Selecione Executar para executar a consulta.

    /*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. Cole o código a seguir no editor de consultas e substitua o valor de carimbo de data/hora por uma hora antes de executar o script de atualização para atualizar o TotalIncludingTax valor. Isso retornaria a lista dos dez principais clientes antes da TotalIncludingTax atualização para SaleKey 22632918. Selecione Executar para executar a consulta.

    /*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');
    

Para obter mais exemplos, visite Como: Consultar usando viagem no tempo no nível da instrução.

Próximo passo