Compartilhar via


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

Neste artigo, saiba como viajar no tempo em seu depósito no nível de instrução usando T-SQL. Esse recurso permite que você consulte os dados conforme eram exibidos anteriormente, dentro de um período de retenção.

Observação

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 consulta FOR TIMESTAMP AS OF.

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

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

  2. No editor de consultas, cole o código a seguir para criar a 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 node Exibir no esquema dbo.

    Captura de tela da imagem do usuário.

  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 coluna TotalIncludingTax para 200000000 para registro que tem o valor SaleKey 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 seguinte código. A função T-SQL CURRENT_TIMESTAMP 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 de carimbo de data/hora pelo valor de carimbo de data/hora atual obtido da 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 do carimbo de data/hora para um horário anterior à execução do script de atualização para atualizar o valor TotalIncludingTax. Isso retornaria a lista dos dez principais clientes antes de TotalIncludingTax ser atualizado 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, confira Como: Consultar usando viagem no tempo no nível de instrução.

Próxima etapa