Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Base de Dados SQL do Azure
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Com tabelas temporais, o sistema realiza várias verificações de consistência. Estas verificações garantem que o esquema cumpre os requisitos temporais e que os dados são consistentes e permanecem consistentes. A DBCC CHECKCONSTRAINTS declaração também fornece verificações temporais.
Verificações de consistência do sistema
Antes de SYSTEM_VERSIONING ser definido como ON, um conjunto de verificações é executado na tabela de histórico e na tabela atual. Estas verificações enquadram-se nas verificações de esquema e verificações 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 do esquema
Quando cria ou altera uma tabela para se tornar uma tabela temporal, o sistema verifica se estes requisitos são cumpridos:
Os nomes e o número de colunas são os mesmos tanto na tabela atual como na tabela histórica.
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, os valores de coluna padrão na tabela de histórico são permitidos.
A tabela de histórico não é colocada num grupo de ficheiros só de leitura.
A tabela de histórico não está configurada para controle de alterações ou captura de dados de alterações.
Verificação da consistência dos dados
Antes de SYSTEM_VERSIONING ser definido como ON e como parte de qualquer operação de linguagem de manipulação de dados (DML), o sistema executa a seguinte verificação: ValidTo >= ValidFrom
Quando cria um link para uma tabela de histórico existente, pode optar por realizar uma verificação de consistência de dados. Esta verificação de consistência de dados garante que os registos existentes não se sobrepõem e que todos cumprem os requisitos temporais. A verificação da consistência dos dados é efetuada por predefinição. Realize a verificação de consistência dos dados sempre que os dados entre as tabelas atuais e de histórico possam estar fora de sincronização. Por exemplo, realiza-o quando incorporas uma tabela de histórico existente que já contém dados de histórico.
Advertência
Alterações manuais ao relógio do sistema fazem com que o sistema falhe inesperadamente, porque as verificações de consistência dos dados em tempo de execução que evitam condições de sobreposição (nomeadamente que a hora de fim de um registo não seja inferior à sua hora de início) falham.
Utilizar 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
- Comece a utilizar tabelas temporais versionadas pelo sistema
- Partição com tabelas temporais
- Considerações e limitações da tabela temporal
- Segurança da tabela temporal
- Gerencie a retenção de dados históricos em tabelas temporais versionadas pelo sistema
- Tabelas temporais versionadas pelo sistema com tabelas otimizadas para memória
- Exibições e funções de metadados de tabela temporal