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 Azure SQL Database
AzureSQL Managed Instance
SQL database in Microsoft Fabric
Com tabelas temporais, o sistema executa várias verificações de consistência para garantir que o esquema esteja em conformidade com os requisitos de tempo e que os dados sejam consistentes e permaneçam consistentes. Além disso, as verificações temporais estão disponíveis na declaração DBCC CHECKCONSTRAINTS.
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. Essas verificações são agrupadas em verificações de esquema e verificações de dados (se a tabela de histórico não estiver vazia). Além disso, o sistema também executa uma verificação de consistência de tempo de execução.
Verificação do esquema
Ao criar ou alterar uma tabela para se tornar uma tabela temporal, o sistema verifica se os requisitos são atendidos:
Os nomes e o número de colunas são os mesmos na tabela atual e 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, 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
Ao criar um link para uma tabela de histórico existente, você pode optar por executar 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 os requisitos temporais sejam atendidos para cada registro individual. Executar a verificação de consistência de dados é o padrão. Você deve executar a verificação de consistência de dados sempre que os dados entre as tabelas atual e de histórico estiverem fora de sincronia. Por exemplo, ao incorporar uma tabela de histórico existente que é preenchida com dados de histórico.
Warning
Alterações manuais no relógio do sistema farão com que o sistema falhe inesperadamente, porque as verificações de consistência de dados de tempo de execução para evitar condições de sobreposição (ou seja, que a hora de término de um registro não é 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 com 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