# Databases > SQL Server - Why Truncate is DDL?

## vcyogi

The Delete command is a DML statement because it deletes data from table

The Truncate command is also Delete the Records from tables.

But how the Truncate command comes under DDL Statement??

----------


## SQLTweety

Where DELETE statement deletes rows from table matching specifications in WHERE clause . 
TRUNCATE deallocates memory page(s) allocated for the specific table in memory and hence it is a DDL statement rather than DML.

Ofcourse DELETE  can be executed with out using WHERE  calause to delete all the rows , however the page(s) are not deallocated .

Additional info : DELETE  statement is logged operation and hence can be rolled back where as TRUNCATE  is not and hence can not be rolled back

HTH   :Smile:  

Regards,

----------


## sutnarcha

Good answer from SQLTweety. Deserves applauds.  :Smile:

----------


## SQLTweety

Glad I could help  :Smile: 


Keep inventing.

Regards.

----------


## swaticsabale

TRUNCATE TABLE handles table as an entity to clear all data from the specified table. It does not create log while deleting data from the table so it can not be rolled back. As it handles table it is DDL i.e Data Definition Language command.

Where as DELETE command deletes specified rows with WHERE condition so it is DML.
DELETE command creates log entry after deleting rows so can be rolled back.

----------

