TRUNCATE TABLE
Rimuove tutte le righe da una tabella senza registrare le eliminazioni delle singole righe.
E' più rapida dell'istruzione DELETE e utilizza un numero minore di risorse di sistema e del log delle transazioni.
TRUNCATE TABLE rimuove tutte le righe da una tabella, ma non rimuove la struttura della tabella e le relative colonne, i vincoli, gli indici e così via. Per quest'ultima operazione esiste l'istruzione DROP TABLE. Insomma truncate table ... azzera la tabella.
Un'altro vantaggio è dato dal fatto che se la tabella contiene un campo Identity, il contatore per questo campo viene inizializzato.
Sintassi:
TRUNCATE TABLE
NomeTabella
Esempio:
Con la seguente tabella avente nome anagrafica
ID | Cognome | Nome | Sesso |
---|---|---|---|
1 | Cognome1 | Nome1 | M |
2 | Cognome2 | Nome2 | F |
3 | Cognome3 | Nome3 | F |
4 | Cognome4 | Nome4 | M |
Eseguiamo:
TRUNCATE TABLE
anagrafica
Otterremo:
ID | Cognome | Nome | Sesso |
---|---|---|---|
Facendo un nuovo inserimento otterremo:
ID | Cognome | Nome | Sesso |
---|---|---|---|
1 | Cognome5 | Nome5 | F |
Fonte: TRUNCATE TABLE (Transact-SQL)
DELETE TABLE
Elimina alcune righe (o tutte) da una tabella.
L'istruzione DELETE può avere esito negativo se viola un trigger o tenta di rimuovere una riga a cui fanno riferimento i dati di un'altra tabella contenente un vincolo FOREIGN KEY.
Se l'istruzione DELETE tenta di rimuovere più righe e l'eliminazione di una qualsiasi di queste righe viola un trigger o un vincolo, l'istruzione viene annullata, viene restituito un errore e non viene rimossa alcuna riga.
Sintassi:
DELETE
FROM
NomeTabella
WHERE
NomeCampo = ValoreScelto
Esempio:
Con la seguente tabella avente nome anagrafica
ID | Cognome | Nome | Sesso |
---|---|---|---|
1 | Cognome1 | Nome1 | M |
2 | Cognome2 | Nome2 | F |
3 | Cognome3 | Nome3 | F |
4 | Cognome4 | Nome4 | M |
Eseguiamo:
DELETE
FROM
anagrafica
WHERE
Sesso = 'M'
Otterremo:
ID | Cognome | Nome | Sesso |
---|---|---|---|
2 | Cognome2 | Nome2 | F |
3 | Cognome3 | Nome3 | F |
Se invece avessimo eseguito:
DELETE
FROM
anagrafica
Otterremo:
ID | Cognome | Nome | Sesso |
---|---|---|---|
Facendo un nuovo inserimento otterremo:
ID | Cognome | Nome | Sesso |
---|---|---|---|
5 | Cognome5 | Nome5 | F |
Fonte: DELETE (Transact-SQL)
Buona cancellata! ;)
Nessun commento:
Posta un commento