VERWIJDEREN
- VERWIJDEREN is een DML-opdracht.
- DELETE-instructie wordt uitgevoerd met een rijvergrendeling, elke rij in de tabel is vergrendeld voor verwijdering.
- We kunnen filters specificeren in de where-clausule
- Het verwijdert gespecificeerde gegevens als er sprake is van een voorwaarde.
- Verwijderen activeert een trigger omdat de bewerking afzonderlijk wordt vastgelegd.
- Langzamer dan afkappen omdat het logboeken bijhoudt.
- Terugdraaien is mogelijk.
AFKNOP
- TRUNCATE is een DDL-commando.
- TRUNCATE TABLE vergrendelt altijd de tabel en pagina, maar niet elke rij.
- Kan Where-voorwaarde niet gebruiken.
- Het verwijdert alle gegevens.
- TRUNCATE TABLE kan geen trigger activeren omdat de bewerking geen afzonderlijke rijverwijderingen registreert.
- Sneller qua prestaties, omdat het geen logboeken bijhoudt.
- Terugdraaien is mogelijk.
- DELETE en TRUNCATE kunnen beide worden teruggedraaid bij gebruik met TRANSACTION (TRUNCATE kan worden teruggedraaid in SQL Server, maar niet in MySQL).
- als er een PK is met automatische ophoging, zal truncate de teller resetten
http://beginner-sql-tutorial.com/sql-delete-statement .htm