Este artigo estabelecerá uma base para criar, trabalhar e usar tabelas temporais no SQL Server.
As tabelas de versão do sistema foram introduzidas no padrão ANSI SQL 2011 e estão disponíveis como um recurso no SQL Server 2016 e acima.
Ao contrário de uma tabela normal que só pode mostrar e trabalhar com dados atuais, as tabelas temporais permitem visualizar e trabalhar mesmo com dados excluídos anteriormente. Como mencionado, isso é possível devido à capacidade de uma tabela temporal de acompanhar as alterações feitas nos dados em uma tabela.
A tabela contém duas colunas principais: SysStartTime e Sysendtime. Essas duas colunas são usadas para definir os dados existentes e anteriores para cada registro em uma tabela. Você pode usar intervalos de tempo específicos para ver como os dados em uma tabela mudaram.
Crie uma tabela temporal
Antes de criar uma tabela temporal, ela deve atender aos seguintes requisitos:
Como criar uma tabela temporal: T-SQL
Vejamos uma demonstração simples de criar uma tabela temporal. Considere a consulta de exemplo mostrada abaixo:
Crie a tabela DBO.my_temporal_table (Depois de executar a consulta acima, o servidor SQL criará a tabela com o nome especificado.
No SQL Server Management Studio, você pode visualizar uma tabela de versão do sistema expandindo a opção Tabelas no seu banco de dados de destino:
Observe que o SQL Server gera automaticamente uma tabela de histórico com um esquema semelhante à tabela de versão do sistema. No entanto, preste atenção às colunas na tabela de história. Observe que eles não têm nenhuma restrição.
Considere a imagem mostrada abaixo:
Como você verá, o SQL Server gera uma tabela de histórico sob um nome após um formato específico. Para definir um nome personalizado para sua tabela de histórico, especifique -o na instrução CREATE TABLE como mostrado:
---Em seguida, se você expandir a opção Indexos para a tabela de histórico, perceberá que o SQL Server gerou automaticamente um índice em cluster:
Usando tabelas temporais
Vamos testar a funcionalidade das tabelas temporais inserindo alguns registros na tabela. Considere a consulta de exemplo mostrada abaixo:
Insira em my_temporal_table (id, fname, email, departamento)Depois que tivermos os dados de amostra inseridos na tabela, podemos consultar como:
Selecione * de my_temporal_table;Você deve obter uma saída próxima à mostrada abaixo como
Para entender como funciona a tabela de versões do sistema, vamos excluir e atualizar linhas na tabela:
Excluir de my_temporal_table where department = 'banco de dados';Em seguida, consulte os dados na tabela principal:
Selecione * de my_temporal_table;Se você consultar a tabela de histórico, verá a versão antiga dos dados com os registros de data e hora corretos.
Conclusão
Este guia abrangeu o conceito de tabela temporal ou de versão do sistema no SQL Server. Usando este guia, você estará em posição de rastrear o histórico de seus dados usando tabelas temporais do SQL Server. Esperamos que você tenha achado este artigo útil. Confira mais artigos de dica do Linux para obter dicas e tutoriais.