Can you tell me the difference between DELETE & TRUNCATE
commands?
Answer Posted / afzal_aziz
Truncate:
- deallocates the data pages in a table and only this
deallocation is stored in transaction log
- aquires only table and page locks for the whole table.
since no row locks are used less memory is required (lock
is a pure memory object)
- resets identity column if there is one
- removes ALL pages. NO empty pages are left behind in a
table
- fast(er)
- doesn't fire delete triggers
Delete:
- removes one row at the time and every deleted row is
stored in the transaction log
- aquires table and/or page and row locks for the whole
table
- leaves identity column alone
- can leave empty pages in a table since empty page
removal requires a table lock which doesn't necessarily
happen
- slow(er)
- fires delete triggers
http://weblogs.sqlteam.com/mladenp/archive/2007/10/03/SQL-
Server-Why-is-TRUNCATE-TABLE-a-DDL-and-not.aspx
| Is This Answer Correct ? | 8 Yes | 6 No |
Post New Answer View All Answers
How to connect Azure federated root database and apply federation in entity framework?
Explain the difference between function and stored procedure?
Can we insert data into a view?
Explain what are the restrictions while creating batches in sql server?
How does SSIS(Sql Server Integration Services) deffer from DTS(Data Transformation Services)?
Difference between primary key and clustered index?
How to set a database state to offline in ms sql server?
How to enter unicode character string literals in ms sql server?
How you would rewrite the sql query to return the customerid sorted numerically?
Can select statements be used on views in ms sql server?
what are the different types of SSRS reports?
What is the function of inner join?
How can you find out which stored procedures are recompiling?
What samples and sample databases are provided by microsoft?
What is dynamic cursor in SQL SERVER?