Delete Delete remove the Data only, the Table structure remains intact. This is a DML Statement Rollback possible No Commit is performed neither before nor after. (Because it is a DML Statement). They take locks on rows, They generate redo (lots of it) They require segments in the UNDO tablespace. A delete does not relinquish segment space thus a table in which all records have been deleted retains all of its original blocks. A truncate does not move the High Water Mark of the table back to zero, it retains it's original position. Delete deletes the specific rows filtered by where statement. and log is maintained for it. It can activate the triggers. Truncate Truncate remove the Data only, the Table structure remains intact. This is a DDL Statement Rollback not possible (Except in SQL 2005) It issues a COMMIT before it acts and another COMMIT afterward so no rollback of the transaction is possible. (Because it is a DDL Statement) No row-level locks are taken. No redo or rollback is generated. They do not require segments in the UNDO tablespace. All extents bar the initial are de-allocated from the table A truncate moves the High Water Mark of the table back to zero Truncate deletes the page associated with the table so all indexes are reset It does not activate the triggers. Drop Drop permanently removes both the Data as well as the Table Structure. This is a DDL Statement Rollback not possible It issues a COMMIT before it acts and another COMMIT afterward so no rollback of the transaction is possible. (Because it is a DDL Statement) No row-level locks are taken. No redo or rollback is generated. They do not require segments in the UNDO tablespace. All extents bar the initial are de-allocated from the table A truncate moves the High Water Mark of the table back to zero Truncate deletes the page associated with the table so all indexes are reset It does not activate the triggers. FurtherMore.... The Main Difference Between DELETE & TRUNCATE Are :- [1] DELETE - is a DML Command & TRUNCATE - is a DDL Command [2] After DELETE - can rollback the Records & After TRUNATE - cannot rollback the records [3] In DELETE Command you can give the conditions in WHERE Clause & In TRUNCATE you cannot give conditions [4] After using DELETE Command The memory will be occupied till the user does not give ROLLBACK or COMMIT & After using TRUNCATE Command The memory realeased immediately when ever u r using delete statement the trigger is fired.in truncated trigger is not fired. we can mention where clause in delete.in truncate we can't mention. From only4gurus.org |
Sunday, September 9, 2007
Difference between delete,drop and truncate
Posted by Prakash at 3:00 PM
Labels: SQL, Sql Server 2000, Sqlserver 2005
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment