Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões
posteriores Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
SQL database in Microsoft Fabric
Com tabelas temporais, o sistema realiza várias verificações de consistência. Essas verificações garantem que o esquema cumpre os requisitos temporais e que os dados sejam consistentes e permaneçam consistentes. A DBCC CHECKCONSTRAINTS declaração também fornece verificações temporais.
Verificações de consistência do sistema
Antes que SYSTEM_VERSIONING seja definido como ON, um conjunto de verificações é executado na tabela de histórico e na tabela atual. Essas verificações se enquadram em checagens de esquema e checagem de dados (se a tabela de histórico não estiver vazia). O sistema também realiza uma verificação de consistência em tempo de execução.
Verificação de esquema
Quando você cria ou altera uma tabela para se tornar uma tabela temporal, o sistema verifica se esses requisitos são atendidos:
Os nomes e o número de colunas são os mesmos tanto na tabela atual quanto na tabela de histórico.
Os tipos de dados correspondem para cada coluna entre a tabela atual e a tabela de histórico.
As colunas de período são definidas como
NOT NULL.A tabela atual tem uma restrição de chave primária e a tabela de histórico não tem uma restrição de chave primária.
Nenhuma coluna
IDENTITYé definida na tabela de histórico.Nenhum gatilho é definido na tabela de histórico.
Nenhuma chave estrangeira é definida na tabela de histórico.
Nenhuma restrição de tabela ou coluna é definida na tabela de histórico. No entanto, são permitidos valores de coluna padrão na tabela de histórico.
A tabela de histórico não é colocada em um grupo de arquivos somente leitura.
A tabela de histórico não está configurada para controle de alterações ou captura de dados de alterações.
Verificação de consistência de dados
Antes que SYSTEM_VERSIONING seja definido como ON e como parte de qualquer operação DML, o sistema executa a seguinte verificação: ValidTo >= ValidFrom
Ao criar um link para uma tabela de histórico existente, pode optar por realizar uma verificação de consistência de dados. Essa verificação de consistência de dados garante que os registros existentes não se sobreponham e que todo registro atenda aos requisitos temporais. A verificação de consistência de dados roda por padrão. Realize a verificação de consistência de dados sempre que os dados entre as tabelas atuais e de histórico estiverem fora de sincronia. Por exemplo, faça isso quando você incorporar uma tabela de histórico existente que já contenha dados de histórico.
Aviso
Mudanças manuais no clock do sistema fazem com que o sistema falhe inesperadamente, porque as verificações de consistência de dados em tempo de execução que evitam condições de sobreposição (ou seja, que o tempo de término de um registro não seja menor que o tempo de início) falham.
Use DBCC CHECKCONSTRAINTS
O comando DBCC CHECKCONSTRAINTS inclui verificações de consistência de dados temporais. Para obter mais informações, consulte DBCC CHECKCONSTRAINTS.
Conteúdo relacionado
- Tabelas temporais
- Primeiros passos com tabelas temporais versionadas pelo sistema
- Partição com tabelas temporais
- Considerações e limitações da tabela temporal
- Segurança da tabela temporal
- Gerenciar a retenção de dados históricos em tabelas temporárias com versão do sistema
- Tabelas temporais versionadas pelo sistema com tabelas otimizadas para memória
- Exibições e funções de metadados de tabela temporal