|
Truncate will actually remove
all the rows from a table and there will be no data in the table after we run
the truncate command. |
Delete command removes the
rows from a table based on the condition that we provide with a WHERE clause |
|
TRUNCATE is faster and uses
fewer system and transaction log resources than DELETE. |
DELETE removes rows one at a
time and records an entry in the transaction log for each deleted row. |
|
TRUNCATE Resets identity of
the table |
DELETE does not reset
identity of the table. |
|
TRUNCATE removes all rows
from a table, but the table structure, its columns, constraints, indexes and
so on, remains. The counter used by an identity for new rows is reset to the
seed for the column. |
DELETE Can be used with or
without a WHERE clause |
|
You cannot use TRUNCATE TABLE
on a table referenced by a FOREIGN KEY constraint. Because TRUNCATE TABLE is
not logged, it cannot activate a trigger. |
DELETE Activates Triggers. |
|
TRUNCATE cannot be rolled
back.
|
DELETE can be rolled back. |
|
TRUNCATE is DDL Command.
|
DELETE is DML Command. |
|
TRUNCATE removes the data by
deallocating the data pages used to store the table's data, and only the page
deallocations are recorded in the transaction log. |
If you want to retain the identity counter, use DELETE instead. If you want to remove table definition and its data, use the DROP TABLE statement. |
Loading

Join the conversation! Your thoughts help the community grow.