Arresto del controllo delle versioni in una tabella temporale con controllo delle versioni di sistema
Si applica a: SQL Server 2016 (13.x) e versioni successive database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric
È possibile arrestare il controllo delle versioni di sistema in una tabella temporale in modo temporaneo o permanente. È possibile farlo impostando la condizione SYSTEM_VERSIONING
su OFF
.
Impostare SYSTEM_VERSIONING = OFF
Arrestare il controllo delle versioni di sistema per eseguire specifiche operazioni di manutenzione su una tabella temporale o se la tabella con controllo delle versioni non è più necessaria. Con questa operazione si ottengono due tabelle indipendenti:
- Tabella corrente con una definizione del periodo
- Tabella cronologica sotto forma di tabella normale
Osservazioni:
La tabella di cronologia interrompe l'acquisizione degli aggiornamenti durante SYSTEM_VERSIONING = OFF
.
Non si verifica alcuna perdita di dati nella SYSTEM_VERSIONING = OFF
tabella temporale quando si imposta SYSTEM_TIME
o si elimina il periodo .
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. Le eliminazioni nella tabella corrente sono permanenti.
Rimuovere il periodo SYSTEM_TIME
per eliminare le colonne periodo. Per rimuovere le colonne periodo, usare ALTER TABLE <table> DROP <column>;
. Per altre informazioni, si veda Modificare lo schema di una tabella temporale con controllo delle versioni di sistema.
Quando si imposta SYSTEM_VERSIONING = OFF
, tutti gli utenti con autorizzazioni sufficienti possono modificare lo schema e il contenuto della tabella cronologica o anche eliminare definitivamente tale tabella.
Non è possibile impostare SYSTEM_VERSIONING = OFF
se sono presenti altri oggetti creati con SCHEMABINDING
tramite estensione di query temporali, ad esempio facendo riferimento a SYSTEM_TIME
. Questa restrizione impedisce che questi oggetti generino errori se si imposta SYSTEM_VERSIONING = OFF
.
Rimuovere in modo definitivo SYSTEM_VERSIONING
Questo esempio rimuove in modo definitivo SYSTEM_VERSIONING
ed elimina le colonne periodo. La rimozione delle colonne del periodo è facoltativa.
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_VERSIONING
L'elenco seguente include le operazioni per cui è richiesto che il controllo delle versioni di sistema sia impostato su OFF
:
- Rimozione dei dati non necessari dalla cronologia (
DELETE
oTRUNCATE
) - Rimozione dei dati dalla tabella corrente senza il controllo delle versioni (
DELETE
,TRUNCATE
) - Partizione
SWITCH OUT
dalla tabella corrente - Partizione
SWITCH IN
nella tabella cronologica
Questo esempio arresta temporaneamente SYSTEM_VERSIONING
per consentire di eseguire operazioni di manutenzione specifiche. Se si arresta temporaneamente il controllo delle versioni come prerequisito per la manutenzione della tabella, si consiglia di eseguire questa modifica all'interno di una transazione per mantenere la coerenza dei dati.
Quando si riattiva il controllo delle versioni di sistema, non dimenticare di specificare l'argomento HISTORY_TABLE
. Se non si esegue questa operazione, verrà creata una nuova tabella cronologica che verrà associata alla tabella corrente. La tabella cronologica originale può continuare a esistere come una normale tabella, ma non sarà più associata alla tabella corrente.
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;
Contenuto correlato
- Tabelle temporali
- Introduzione alle tabelle temporali con controllo delle versioni di sistema
- Gestire la conservazione dei dati storici nelle tabelle temporali con controllo delle versioni di sistema
- Tabelle temporali con controllo delle versioni di sistema con tabelle ottimizzate per la memoria
- Creare una tabella temporale con controllo delle versioni di sistema
- Modifica dei dati in una tabella temporale con controllo delle versioni di sistema
- Query sui dati in una tabella temporale con controllo delle versioni di sistema
- Modificare lo schema di una tabella temporale con controllo delle versioni di sistema