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
.
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 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;
No Explorer, verifique se você pode ver o modo de exibição
Top10CustomersView
recém-criado expandindo o node Exibir no esquemadbo
.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 coluna
TotalIncludingTax
para200000000
para registro que tem o valorSaleKey
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 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;
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 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]
.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 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 deTotalIncludingTax
ser atualizado 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, confira Como: Consultar usando viagem no tempo no nível de instrução.