ASA SQL Reference
SQL Statements
Use this statement to delete all rows from a table, without deleting the table definition.
TRUNCATE TABLE [ owner.]table-name
The TRUNCATE TABLE statement deletes all rows from a table. It is equivalent to a DELETE statement without a WHERE clause, except that no triggers are fired as a result of the TRUNCATE TABLE statement and each individual row deletion is not entered into the transaction log.
After a TRUNCATE TABLE statement, the table structure and all of the indexes continue to exist until you issue a DROP TABLE statement. The column definitions and constraints remain intact, and triggers and permissions remain in effect.
The TRUNCATE TABLE statement is entered into the transaction log as a single statement, like data definition statements. Each deleted row is not entered into the transaction log.
If the TRUNCATE_WITH_AUTO_COMMIT option is set to ON (the default), and all the following criteria are satisfied, a fast form of table truncation is executed:
There are no foreign keys either to or from the table.
The TRUNCATE TABLE statement is not executed within a trigger.
The TRUNCATE TABLE statement is not executed within an atomic statement.
If a fast truncation is carried out, then a COMMIT is carried out before and after the operation.
Must be the table owner, or have DBA authority, or have ALTER permissions on the table.
For base tables, the TRUNCATE TABLE statement requires exclusive access to the table, as the operation is atomic (either all rows are deleted, or none are). This means that any cursors that were previously opened and that reference the table being truncated must be closed and a COMMIT or ROLLBACK must be issued to release the reference to the table.
For temporary tables, each user has their own copy of the data, and exclusive access is not required.
Delete triggers are not fired by the TRUNCATE TABLE statement.
If TRUNCATE_WITH_AUTO_COMMIT is set to ON, then a COMMIT is performed before and after the table is truncated.
Individual deletions of rows are not entered into the transaction log, so the TRUNCATE TABLE operation is not replicated. Do not use this statement in SQL Remote replication or on a MobiLink remote database.
If the table contains a column defined as DEFAULT AUTOINCREMENT or DEFAULT GLOBAL AUTOINCREMENT, TRUNCATE TABLE resets the next available value for the column.
TRUNCATE_WITH_AUTO_COMMIT option [database]
SQL/92 Transact-SQL extension.
SQL/99 Transact-SQL extension.
Sybase Supported by Adaptive Server Enterprise.
Delete all rows from the department table.
TRUNCATE TABLE department