🔹 1. DELETE (sicherer, aber langsamer) #
DELETE FROM Tabellenname;
Eigenschaften:
- Löscht alle Zeilen einzeln
- Kann mit
WHEREeingeschränkt werden - Lässt sich rückgängig machen (ROLLBACK, wenn in Transaktion)
- Trigger werden ausgeführt
🔹 2. TRUNCATE TABLE (schneller, radikal) #
TRUNCATE TABLE Tabellenname;
Eigenschaften:
- Löscht alle Daten sehr schnell
- Setzt Identity-Zähler zurück
- Nicht möglich, wenn:
- Fremdschlüssel-Beziehungen existieren
- Kein
WHEREmöglich - Kaum/logisch nicht rollbackfähig (außer in expliziter Transaktion)
⚠️ Wann was verwenden? #
| Situation | Empfehlung |
|---|---|
| Nur bestimmte Daten löschen | DELETE ... WHERE |
| Ganze Tabelle leeren, schnell | TRUNCATE TABLE |
| Trigger sollen laufen | DELETE |
| Fremdschlüssel vorhanden | DELETE |
