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 Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Talvez você queira parar o controle de versão em sua tabela temporal de forma temporária ou permanente. Faça isso definindo a cláusulaSYSTEM_VERSIONING como OFF.
Defina SYSTEM_VERSIONING = OFF
Pare o controle de versão do sistema se quiser realizar operações de manutenção específicas em uma tabela temporal ou se não precisar mais de uma tabela com controle de versão. Como resultado dessa operação, você obterá duas tabelas independentes:
- A tabela atual com a definição do período
- Tabela de histórico como uma tabela normal
Remarks
A tabela de histórico para de capturar as atualizações durante o SYSTEM_VERSIONING = OFF.
Nenhuma perda de dados ocorre na tabela temporal quando você define SYSTEM_VERSIONING = OFF ou descarta o período SYSTEM_TIME.
Quando você define SYSTEM_VERSIONING = OFF e não descarta o período SYSTEM_TIME, o sistema continua a atualizar as colunas de período de cada operação de inserção e atualização. As exclusões na tabela atual são permanentes.
O período SYSTEM_TIME deverá ser descartado para que as colunas de período possam ser excluídas. Para remover as colunas de período, use ALTER TABLE <table> DROP <column>;. Para obter mais informações, consulte Alterar o esquema de uma tabela temporal com controle de versão do sistema.
Quando você define SYSTEM_VERSIONING = OFF, todos os usuários com permissões suficientes podem modificar o esquema e o conteúdo da tabela de histórico ou até mesmo excluir permanentemente a tabela de histórico.
Não é possível definir SYSTEM_VERSIONING = OFF quando há outros objetos criados com SCHEMABINDING usando extensões de consulta temporais, como ao referenciar SYSTEM_TIME. Essa restrição impede que esses objetos falhem quando você define SYSTEM_VERSIONING = OFF.
Remover permanentemente o SYSTEM_VERSIONING
Este exemplo remove permanentemente SYSTEM_VERSIONING e exclui as colunas de período. A remoção das colunas de período é opcional.
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = OFF);
-- Optionally, DROP PERIOD if you want to revert temporal table to a non-temporal
ALTER TABLE dbo.Department
DROP PERIOD FOR SYSTEM_TIME;
Remover temporariamente o SYSTEM_VERSIONING
A lista a seguir contém a lista de operações que exigem que o controle de versão do sistema seja definido como OFF:
- Removendo dados desnecessários do histórico (
DELETEouTRUNCATE) - Removendo dados da tabela atual sem controle de versão (
DELETE,TRUNCATE) - Partição
SWITCH OUTda tabela atual - Partição
SWITCH INna tabela de histórico
Este exemplo interrompe temporariamente o SYSTEM_VERSIONING para permitir que você execute operações de manutenção específicas. Se você parar temporariamente o controle de versão como um pré-requisito para a manutenção da tabela, é altamente recomendável fazer essa alteração dentro de uma transação para manter a consistência dos dados.
Ao ativar novamente o controle de versão do sistema, não se esqueça de especificar o argumento HISTORY_TABLE. Se isso não for feito, uma tabela de histórico será criada e será associada à tabela atual. A tabela de histórico original ainda poderá existir como uma tabela normal, mas não mais associada à tabela atual.
BEGIN TRANSACTION;
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = OFF);
TRUNCATE TABLE [History].[DepartmentHistory]
WITH (PARTITIONS(1, 2));
ALTER TABLE dbo.Department
SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = History.DepartmentHistory));
COMMIT;
Conteúdo relacionado
- Tabelas temporais
- Introdução a tabelas temporais com controle de versão do sistema
- Gerenciar a retenção de dados históricos em tabelas temporárias com versão do sistema
- Tabelas temporais com controle de versão do sistema e tabelas com otimização de memória
- Criar uma tabela temporal com controle de versão pelo sistema
- Modificar dados em uma tabela temporal com controle de versão de sistema
- Consultar dados em uma tabela temporal com controle da versão do sistema
- Alterar o esquema de uma tabela temporal com controle de versão de sistema