SQL Server Temp Table
Temporal Tables, também conhecida como System-Versioned, é a nova feature incluída no SQL Server 2016 para armazenamento de dados históricos. Todas as alterações realizadas pelos usuários na tabela atual são armazenadas de maneira simples e prática em outra tabela com a finalidade de manter o versionamento das informações. Temporal Tables podem ser utilizadas em diversos cenários, dentre os quais podemos destacar a auditoria de dados, onde é possível realizar uma análise detalhada em um determinado período no tempo, recuperação de dados excluídos ou modificados acidentalmente pelo usuário e versionamento de dados em um ambiente de Data Warehouse (ETL).
Armazenar informações atuais e históricas é um processo relevante dentro do mundo corporativo, pois permitem uma análise mais detalhada dos acontecimentos ao longo do tempo. Este artigo tem a finalidade de mostrar como funciona a nova feature denominada Temporal Tables, suas principais características, limitações e exemplos práticos que podem auxiliar o DBA e desenvolvedores na análise de dados.
Temporal Tables é um novo tipo de tabela de usuário e está disponível em todas as versões do SQL Server 2016. Sua finalidade é manter o histórico completo de alterações de dados em tabelas específicas, permitindo uma análise e acompanhamento dos dados ao longo do tempo. É conhecida também como system-versioned, pois o período de validade de cada linha é gerenciado pelo mecanismo de banco de dados.
Temporal Tables é recurso nativo do SQL Server 2016 e não requer qualquer configuração adicional na instância ou no banco de dados. A implementação é realizada através de duas tabelas: uma para manter os dados atuais e outra para armazenar as modificações na tabela histórica. Durante a criação da estrutura da tabela, obrigatoriamente temos que especificar uma chave primária (Primary Key) e as colunas de início e fim do período com o tipo de dados datetime2 para que seja possível manter o versionamento e a validade de cada linha, além de uma cláusula adicional para habilitar a funcionalidade. Uma vez habilitada, o gerenciamento é feito pelo próprio SQL Server.
Quando um usuário de aplicação realiza qualquer modificação na tabela que armazena os dados atuais, automaticamente a versão anterior da linha é gravada na tabela histórica para futuras consultas, conforme podemos observar na Figura 1.

Alguns pré-requisitos devem ser atendidos para que seja possível utilizar a Temporal Tables:
- a tabela atual deve conter a chave primária (PK);
- uma coluna com o tipo de dados DATETIME2 e com a cláusula GENERATED ALWAYS AS ROW START para identificar a data de início da validade do registro;
- uma coluna com o tipo de dados DATETIME2 e com a cláusula GENERATED ALWAYS AS ROW END para identificar a data de término da validade do registro;
- a
tabela deverá ser especificada com a cláusula SYSTEM_VERSIONING ...
Fim do trecho gratuito • continue abaixoCONTEÚDO EXCLUSIVO
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais
Confira outros conteúdos:
Supabase: banco de dados como serviço...
SQL SUM: somando os valores de uma...
SQL: INNER JOIN
Por Ricardo Em 2017Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.
Aceitar -