Sie können die Anweisung TRUNCATE TABLE als schnelle Methode zum Löschen aller Zeilen in einer Tabelle verwenden. Dies funktioniert schneller als eine DELETE-Anweisung ohne Bedingungen, da DELETE alle Änderungen ins Log schreibt, während die einzelnen gelöschten Zeilen mit TRUNCATE nicht aufgezeichnet werden.
Die Tabellendefinition für eine Tabelle, die mit der Anweisung TRUNCATE TABLE geleert wurde, bleibt zusammen mit ihren Indizes und anderen zugeordneten Objekten in der Datenbank, sofern Sie keine DROP TABLE-Anweisung ausführen.
Sie können TRUNCATE TABLE nicht benutzen, wenn eine andere Tabelle Zeilen enthält, die über eine Integritätsregel zur Aufrechterhaltung der referenziellen Integrität darauf zugreifen. Löschen Sie die Zeilen aus der Fremdtabelle oder kürzen Sie zuerst die Fremdtabelle und dann die Primärtabelle.
Das Kürzen von Basistabellen oder der Massenimport von Daten bewirken, dass Daten in Indizes (regulär oder Text) und in abhängigen materialisierten Ansichten veralten. Sie sollten zuerst die Daten in den Indizes und den abhängigen materialisierte Ansichten kürzen, die INPUT-Anweisung ausführen und dann die Indizes und materialisierten Ansichten neu aufbauen bzw. aktualisieren. Weitere Hinweise finden Sie unter TRUNCATE-Anweisung und TRUNCATE TEXT INDEX-Anweisung.
Die Syntax für TRUNCATE TABLE lautet wie folgt:
TRUNCATE TABLE Tabellenname
Um z.B. alle Daten aus der Tabelle "SalesOrders" zu entfernen, geben Sie folgende Informationen ein:
TRUNCATE TABLE SalesOrders; |
Eine TRUNCATE TABLE-Anweisung löst keine Trigger aus, die für die Tabelle definiert wurden.
Machen Sie diese Änderungen in der Datenbank rückgängig, indem Sie eine ROLLBACK-Anweisung eingeben:
ROLLBACK; |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |