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??
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??
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
Regards,
Good answer from SQLTweety. Deserves applauds.
Lack of WILL POWER has caused more failure than
lack of INTELLIGENCE or ABILITY.
-sutnarcha-
Glad I could help
Keep inventing.
Regards.
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.