How do you differentiate between truncate and delete? |
Answer
TRUNCATE and DELETE:
It also removes the rows from the specified location in the query like DELETE command, but the only difference is :
1. rows once u truncated cnnot be ROLLBACKED like in DELETE. 2. which ROLLBACK can be possible with delete. 3. Truncate is used for HUGE databases or tables bcz it works efficiently. 4. DELETE will work efficiently on small data(tables).
Now it is vident that the only difference between TRUNCATE and DELETE is efficiency(i.e,Accessing Speed).
Annapurna.
Answer
TRUNCATE REMOVES ALL THE ROWS FROM THE TABLE AND CANNOT BE Rollbacked, while delete removes all/specific rows from table and can be rollbacked.
Also truncate resets the high water mark.
Answer
A common misconception is that they do the same thing. Not so. In fact, there are many differences between the two. DELETE is a logged operation on a per row basis. This means that the deletion of each row gets logged and physically deleted. You can DELETE any row that will not violate a constraint, while leaving the foreign key or any other contraint in place. TRUNCATE is also a logged operation, but in a different way. TRUNCATE logs the deallocation of the data pages in which the data exists. The deallocation of data pages means that your data rows still actually exist in the data pages, but the extents have been marked as empty for reuse. This is what makes TRUNCATE a faster operation to perform over DELETE. You cannot TRUNCATE a table that has any foreign key constraints. You will have to remove the contraints, TRUNCATE the table, and reapply the contraints.
The difference between the two is that the truncate command is a DDL operation and just moves the high water mark and produces a now rollback. The delete command, on the other hand, is a DML operation, which will produce a rollback and thus take longer to complete.
Answer
Truncate can be rollbacked,, basically i see lot of aritcles which says it can rollback,, but the truth is that we can rollback after trancate ,, difference is that in truncate only deallocation of the data page is done, but in delete the it is logged in deleted table and is physically removed from data page,,,
Harishjan
Answer
The difference is with operation on memory because if you want to have a place in memory for a later use you should use delete but if you want clear memory you should use truncate - this function clears the value and place where this value was stored.
Answer
For more detailed explanation about this topic please read the following article.
http://www.sqlservercentral.com/articles/delete/61387/
|
|
|
First answer by Archana k. Last edit by Prashantvictory. Contributor trust: 22 [recommend contributor]. Question popularity: 90 [recommend question]
|
Research your answer: |
Can you answer other questions about programming?
|
|


