Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » UltraLite - Datenbankverwaltung » UltraLite-SQL-Referenz » UltraLite-SQL-Anweisungen

 

UltraLite TRUNCATE TABLE-Anweisung

Mit dieser Anweisung löschen Sie alle Zeilen aus einer Tabelle, ohne die Tabelle zu löschen.

Syntax
TRUNCATE TABLE Tabellenname
Bemerkungen

Die Anweisung TRUNCATE TABLE löscht alle Zeilen aus einer Tabelle und der MobiLink-Server wird bei der nachfolgenden Synchronisation nicht über ihre Löschung informiert. Dies entspricht der Ausführung der folgenden Anweisungen:

STOP SYNCHRONIZATION DELETE;
DELETE FROM TABLE;
START SYNCHRONIZATION DELETE;
Hinweis

Diese Anweisung muss für eine Datenbank, die an einer Synchronisation oder Replikation beteiligt ist, mit großer Umsicht verwendet werden. Da der MobiLink-Server nicht informiert wird, kann dieser Löschvorgang zu Inkonsistenzen führen, die bewirken können, dass die Synchronisation oder Replikation fehlschlägt.

Nach einer TRUNCATE TABLE-Anweisung bleiben die Tabellenstruktur, alle Indizes und die Integritätsregeln und Spaltendefinitionen weiter bestehen. Nur Daten werden gelöscht.

TRUNCATE TABLE kann nicht ausgeführt werden, wenn eine Anweisung, die die Tabelle betrifft, bereits von einer anderen Anforderung oder Abfrage referenziert wurde. UltraLite verarbeitet auch keine Anforderungen, die eine Tabelle referenzieren, wenn diese Tabelle gerade geändert wird. Außerdem ist es nicht möglich, TRUNCATE TABLE auszuführen, wenn die Datenbank aktive Abfragen oder nicht festgeschriebene Transaktionen enthält.

Für UltraLite.NET-Benutzer: Sie können diese Anweisung nur ausführen, wenn Sie auch die Dispose-Methode für alle Datenobjekte ausführen (z.B. ULDataReader). Weitere Hinweise finden Sie unter Dispose-Methode.

Schemaänderungen   Anweisungen werden nicht freigegeben, wenn gleichzeitig Schemaänderungen initiiert werden. Weitere Hinweise finden Sie unter Schemaänderungen mit DDL-Anweisungen.

Nebenwirkungen

Wenn die Tabelle eine als DEFAULT AUTOINCREMENT oder DEFAULT GLOBAL AUTOINCREMENT definierte Spalte enthält, setzt TRUNCATE TABLE den nächsten verfügbaren Wert für die Spalte zurück.

Sobald die Zeilen mit TRUNCATE TABLE als gelöscht markiert sind, sind sie für den Benutzer, der diese Aktion durchgeführt hat, nicht mehr zugreifbar, außer der Benutzer gibt eine Anweisung ROLLBACK aus. Sie bleiben jedoch für andere Verbindungen zugreifbar. Verwenden Sie COMMIT, um die Löschungen dauerhaft zu machen, wodurch von keiner Verbindung mehr auf die Daten zugegriffen werden kann.

Wenn Sie die gekürzte Tabelle synchronisieren, haben alle INSERT-Anweisungen, die auf die Tabelle angewendet werden, Vorrang vor der TRUNCATE TABLE-Anweisung.

Siehe auch
Beispiel

Die folgende Anweisung löscht alle Zeilen aus der Tabelle Departments.

TRUNCATE TABLE Departments;

Wenn Sie dieses Beispiel ausführen, achten Sie darauf, dass Sie anschließend eine ROLLBACK-Anweisung ausführen, um Ihre Änderungen zurückzusetzen. Weitere Hinweise finden Sie unter UltraLite ROLLBACK-Anweisung.