Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive database SQL di Azure
AzureSQL Managed Instance
SQL database in Microsoft Fabric
È possibile arrestare il versionamento nella tua tabella temporale in modo temporaneo o permanente. È possibile farlo impostando la condizione SYSTEM_VERSIONING su OFF.
Imposta SYSTEM_VERSIONING = OFF
Smetti di versionare il sistema se vuoi eseguire operazioni di manutenzione specifiche su una tabella temporale o non hai più bisogno di una tabella versionata. Questa operazione ti dà due tabelle indipendenti:
- Tabella corrente con una definizione del periodo
- Tabella cronologica sotto forma di tabella normale
Remarks
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 imposti SYSTEM_VERSIONING = OFF e non elimini il periodo SYSTEM_TIME, il sistema continua ad aggiornare le colonne del periodo a ogni operazione di inserimento e aggiornamento. Le eliminazioni nella tabella corrente sono permanenti.
Devi eliminare il periodo SYSTEM_TIME per cancellare le colonne del periodo. Per rimuovere le colonne periodo, usare ALTER TABLE <table> DROP <column>;. Per ulteriori informazioni, consulta Modificare lo schema di una tabella temporale versionata 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 puoi impostare SYSTEM_VERSIONING = OFF se hai altri oggetti creati con SCHEMABINDING che utilizzano estensioni 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);
Opzionalmente, elimina il punto se vuoi riportare la tabella temporale a una tabella non temporale.
ALTER TABLE dbo.Department
DROP PERIOD FOR SYSTEM_TIME;
Rimuovere temporaneamente SYSTEM_VERSIONING
Le seguenti operazioni richiedono di impostare il controllo delle versioni del sistema su OFF:
- Rimozione dei dati non necessari dalla cronologia (
DELETEoTRUNCATE) - Rimuovere i dati dalla tabella corrente senza il controllo delle versioni (
DELETE,TRUNCATE) - Separa la partizione
SWITCH OUTdalla tabella corrente - Dividi
SWITCH INnella 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 riattivi il controllo delle versioni del sistema, specifica l'argomento HISTORY_TABLE. Se non lo fai, il sistema crea una nuova tabella della storia e la associa alla tabella attuale. La tabella della storia originale può ancora esistere come tabella normale, ma non è più associata alla tabella attuale.
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 TRANSACTION;
Contenuti correlati
- Tabelle temporali
- Inizia a utilizzare le tabelle temporali versionate dal sistema
- Gestire la conservazione dei dati storici nelle tabelle temporali versionate dal sistema
- Tabelle temporali versionate a livello di sistema con tabelle ottimizzate per la memoria
- Creare una tabella temporale versionata dal sistema
- Modifica dei dati in una tabella temporale versionata dal sistema
- Interroga dati in una tabella temporale gestita dal sistema
- Modificare lo schema di una tabella temporale versionata a livello di sistema