SQLTRONCARE

introduzione

L'istruzione TRUNCATE elimina tutti i dati da una tabella. È simile a DELETE senza filtro, ma, a seconda del software del database, presenta alcune restrizioni e ottimizzazioni.

Sintassi

  • TRUNCATE TABLE nome_tabella;

Osservazioni

TRUNCATE è un comando DDL (Data Definition Language) e, come tale, esistono differenze significative tra esso e DELETE (un linguaggio di manipolazione dei dati, DML, comando). Mentre TRUNCATE può essere un mezzo per rimuovere rapidamente grandi volumi di record da un database, queste differenze dovrebbero essere comprese al fine di decidere se l'uso di un comando TRUNCATE è adatto alla tua particolare situazione.

  • TRUNCATE è un'operazione di pagina di dati. Pertanto i trigger DML (ON DELETE) associati alla tabella non si attivano quando si esegue un'operazione TRUNCATE. Mentre questo farà risparmiare un sacco di tempo per le massicce operazioni di cancellazione, tuttavia potrebbe essere necessario eliminare manualmente i dati correlati.
  • TRUNCATE rilascerà lo spazio su disco utilizzato dalle righe eliminate, DELETE rilascerà spazio
  • Se la tabella da troncare utilizza colonne Identity (MS SQL Server), il seed viene resettato dal comando TRUNCATE. Ciò potrebbe causare problemi di integrità referenziale
  • A seconda dei ruoli di sicurezza esistenti e della variante di SQL in uso, è possibile che non si disponga delle autorizzazioni necessarie per eseguire un comando TRUNCATE

TRONCARE Esempi correlati