LÖSCHEN
- DELETE ist ein DML-Befehl.
- Die DELETE-Anweisung wird mit einer Zeilensperre ausgeführt, jede Zeile in der Tabelle ist zum Löschen gesperrt.
- Wir können Filter in der Where-Klausel spezifizieren
- Es löscht angegebene Daten, wenn eine Bedingung vorhanden ist.
- Löschen aktiviert einen Trigger, da die Vorgänge einzeln protokolliert werden.
- Langsamer als truncate, da Protokolle geführt werden.
- Rollback ist möglich.
TRUNCATE
- TRUNCATE ist ein DDL-Befehl.
- TRUNCATE TABLE sperrt immer die Tabelle und die Seite, aber nicht jede Zeile.
- Wo-Bedingung kann nicht verwendet werden.
- Es entfernt alle Daten.
- TRUNCATE TABLE kann keinen Trigger aktivieren, da die Operation einzelne Zeilenlöschungen nicht protokolliert.
- Schneller in Bezug auf die Leistung, da keine Protokolle geführt werden.
- Ein Rollback ist nicht möglich.