Arresto del controllo delle versioni di sistema in una tabella temporale con controllo delle versioni di sistemaStopping System-Versioning on a System-Versioned Temporal Table

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (a partire dalla versione 2016)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

È possibile arrestare il controllo delle versioni di sistema in una tabella temporale in modo temporaneo o permanente.You may want to stop versioning on your temporal table either temporarily or permanently.
È possibile farlo impostando la clausola SYSTEM_VERSIONING su OFF.You can do that by setting SYSTEM_VERSIONING clause to OFF.

Impostazione di SYSTEM_VERSIONING = OFFSetting SYSTEM_VERSIONING = OFF

Arrestare il controllo delle versioni di sistema per eseguire specifiche operazioni di manutenzione sulla tabella temporale o se la tabella con controllo delle versioni non è più necessaria.Stop system-versioning if you want to perform specific maintenance operations on temporal table or if you don’t need a versioned table anymore. Questa operazione produce due tabelle indipendenti:As a result of this operation you will get two independent tables:

  • Tabella corrente con definizione del periodoCurrent table with period definition

  • Tabella cronologica sotto forma di tabella normaleHistory table as a regular table

Note importantiImportant remarks

  • Non si verifica alcuna perdita di dati quando si imposta SYSTEM_VERSIONING = OFF o si elimina il periodo SYSTEM_TIME .No data loss happens when you set SYSTEM_VERSIONING = OFF or drop the SYSTEM_TIME period.

  • Quando si imposta SYSTEM_VERSIONING = OFF e non si rimuove il periodo SYSTEM_TIME , il sistema continua ad aggiornare le colonne del periodo per ogni operazione di inserimento e di aggiornamento.When you set SYSTEM_VERSIONING = OFF and do not remove drop the SYSTEM_TIME period, the system will continue to update the period columns for every insert and update operation. L'eliminazione di elementi nella tabella corrente è definitiva.Deletes on current table will be permanent.

  • Eliminare il periodo SYSTEM_TIME per rimuovere completamente le colonne del periodo.Drop the SYSTEM_TIME period to remove the period columns completely.

  • Quando si imposta SYSTEM_VERSIONING = OFF, tutti gli utenti con autorizzazioni sufficienti possono modificare lo schema e il contenuto della tabella di cronologia o anche eliminare definitivamente tale tabella.When you set SYSTEM_VERSIONING = OFF, all users that have sufficient permissions will be able to modify schema and content of history table or even to permanently delete the history table.

Rimuovere in modo definitivo SYSTEM_VERSIONINGPermanently remove SYSTEM_VERSIONING

Questo esempio rimuove in modo definitivo SYSTEM_VERSIONING e le colonne del periodo.This example permanently removes SYSTEM_VERSIONING and removes the period columns completely. La rimozione delle colonne del periodo è facoltativa.Removing the period columns is optional.

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;  

Rimuovere in modo temporaneo SYSTEM_VERSIONINGTemporarily remove SYSTEM_VERSIONING

L'elenco seguente include le operazioni per cui è richiesto che il controllo delle versioni di sistema sia impostato su OFF:This is the list of operations that requires system-versioning to be set to OFF:

  • Rimozione dei dati non necessari dalla cronologia (DELETE o TRUNCATE)Removing unnecessary data from history (DELETE or TRUNCATE)

  • Rimozione dei dati dalla tabella corrente senza il controllo delle versioni (DELETE, TRUNCATE)Removing data from current table without versioning (DELETE, TRUNCATE)

  • SWITCH OUT della partizione dalla tabella correntePartition SWITCH OUT from current table

  • SWITCH IN della partizione nella tabella di cronologiaPartition SWITCH IN into history table

    Questo esempio arresta temporaneamente SYSTEM_VERSIONING per consentire di eseguire operazioni di manutenzione specifiche.This example temporarily stops SYSTEM_VERSIONING to allow you to perform specific maintenance operations. Se si arresta temporaneamente il controllo delle versioni come prerequisito per la manutenzione della tabella, si consiglia di eseguire questa operazione all'interno di una transazione per mantenere la coerenza dei dati.If you stop versioning temporarily as a prerequisite for table maintenance, we strongly recommend doing this inside a transaction to keep data consistency.

BEGIN TRAN   
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 ;  

Questo articolo è stato utile?Did this Article Help You? Commenti e suggerimentiWe’re Listening

Quali informazioni si stanno cercando? La ricerca ha restituito i risultati desiderati?What information are you looking for, and did you find it? Microsoft incoraggia gli utenti a inviare i propri commenti per migliorare i contenutiWe’re listening to your feedback to improve the content. Inviare eventuali commenti all'indirizzo sqlfeedback@microsoft.comPlease submit your comments to sqlfeedback@microsoft.com

Vedere ancheSee Also

Tabelle temporali Temporal Tables
Introduzione alle tabelle temporali con controllo delle versioni di sistema Getting Started with System-Versioned Temporal Tables
Gestire la conservazione dei dati cronologici nelle tabelle temporali con controllo delle versioni di sistema Manage Retention of Historical Data in System-Versioned Temporal Tables
Tabelle temporali con controllo delle versioni di sistema con tabelle con ottimizzazione per la memoria System-Versioned Temporal Tables with Memory-Optimized Tables
Creazione di una tabella temporale con controllo delle versioni di sistema Creating a System-Versioned Temporal Table
Modifica dei dati in una tabella temporale con controllo delle versioni di sistema Modifying Data in a System-Versioned Temporal Table
Query sui dati in una tabella temporale con controllo delle versioni di sistema Querying Data in a System-Versioned Temporal Table
Modifica dello schema di una tabella temporale con controllo delle versioni di sistema Changing the Schema of a System-Versioned Temporal Table