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
Talvez você queira interromper o controle de versão em sua tabela temporal temporária ou permanentemente. Você pode fazer isso definindo a cláusula SYSTEM_VERSIONING como OFF.
Definir SYSTEM_VERSIONING = OFF
Pare o controle de versão do sistema se quiser executar operações de manutenção específicas em uma tabela temporal ou não precisar mais de uma tabela com versão. Devido a essa operação, você obtém duas tabelas independentes:
- Tabela atual com uma definição de período
- Tabela de histórico como uma tabela regular
Remarks
A tabela de histórico para de capturar as atualizações durante SYSTEM_VERSIONING = OFF.
Nenhuma perda de dados acontece na tabela temporal quando você define SYSTEM_VERSIONING = OFF ou descarta o período de SYSTEM_TIME.
Quando defines SYSTEM_VERSIONING = OFF e não removes o período SYSTEM_TIME, o sistema continua a atualizar as colunas do período para cada operação de inserção e atualização. As exclusões na tabela atual são permanentes.
Você deve soltar o período de SYSTEM_TIME para excluir as colunas de período. Para remover as colunas de período, use ALTER TABLE <table> DROP <column>;. Para mais informações, veja Alterar o esquema de uma tabela temporal versionada pelo 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 se tiver outros objetos criados com SCHEMABINDING usando extensões de consulta temporais, como fazer referência a SYSTEM_TIME. Essa restrição impede que esses objetos falhem se você definir SYSTEM_VERSIONING = OFF.
Remover permanentemente 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 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:
- Remoção de dados desnecessários do histórico (
DELETEouTRUNCATE) - Removendo dados da tabela atual sem controle de versão (
DELETE,TRUNCATE) - A partição
SWITCH OUTda tabela atual - Particionar a partição
SWITCH INna tabela de histórico
Este exemplo interrompe temporariamente SYSTEM_VERSIONING para permitir que você execute operações de manutenção específicas. Se você interromper temporariamente o controle de versão como 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 nova tabela de histórico será criada e associada à tabela atual. A tabela de histórico original ainda pode existir como uma tabela normal, não está 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 às tabelas temporais com versão do sistema
- 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
- Criar uma tabela temporal com versão do sistema
- Modificar dados numa tabela temporal versionada pelo sistema
- Consultar dados numa tabela temporal com versão gerida pelo sistema
- Alterar o esquema de uma tabela temporal versionada pelo sistema