Tutorial: Viagem no tempo usando T-SQL no nível da instruçã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.
Na guia Página Inicial da faixa de opções, selecione Nova consulta SQL.
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;
No Explorer, verifique se você pode ver o modo de exibição
Top10CustomersView
recém-criado expandindo o nó Exibir emdbo
esquema.Crie outra nova consulta, semelhante à Etapa 1. Na guia Página Inicial da faixa de opções, selecione Nova consulta SQL.
No editor de consultas, cole o código a seguir. Isso atualiza o valor da
TotalIncludingTax
coluna para200000000
para o registro que tem oSaleKey
valor de22632918
. 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;
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;
Copie o valor de carimbo de data/hora retornado para a área de transferência.
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]
.Remova os zeros à direita, por exemplo:
2024-04-24T20:59:06.097
.O exemplo a seguir retorna a lista dos dez principais clientes por
TotalIncludingTax
, incluindo o novo valor paraSaleKey
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');
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 daTotalIncludingTax
atualização paraSaleKey
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.