Database Management
- How to Create a Table
 - How to Drop a Table
 - How to Rename a Table
 - How to Truncate a Table
 - How to Duplicate a Table
 - How to Add a Column
 - How to Drop a Column
 - How to Rename a Column
 - How to Add a Default Value to a Column
 - How to Remove a Default Value to a Column
 - How to Add a NOT NULL Constraint
 - How to Remove a NOT NULL Constraint
 - How to Drop an Index
 - How to Create a View
 - How to Drop a View
 - How to Alter Sequence
 - How to Create an Index
 
Dates and Times
Analysis
- How to use SQL Pivot
 - How to Query JSON Object
 - How to Calculate Cumulative Sum/Running Total
 - How to Have Multiple Counts
 - How to Write a Case Statement
 - How to Use Coalesce
 - How to Avoid Gaps in Data
 - How to Import a CSV
 - How to Get First Row Per Group
 - How to Compare Two Values When One is NULL
 - How to Write a Common Table Expression
 - How to Calculate Percentiles
 - How to Do Type Casting
 
How to Truncate a Table in SQL Server
The `TRUNCATE TABLE` statement in SQL Server is a powerful command that allows you to quickly remove all rows from a table without deleting the table itself. This command is often used when you need to clear out a table but want to retain its structure for future use.
What is the TRUNCATE TABLE Command?
The `TRUNCATE TABLE` command is used to delete all rows from a table. Unlike the `DELETE` command, `TRUNCATE` is faster and does not log individual row deletions. It also doesn't fire any triggers associated with the table, which can improve performance. However, it has some limitations compared to `DELETE`, as it can't be used when there are foreign key constraints linked to the table.
Syntax
The basic syntax for the `TRUNCATE TABLE` command is:
TRUNCATE TABLE table_name;Where `table_name` is the name of the table from which you want to remove all rows.
Example
Let's say you have a table named `Employees` and want to remove all the data from it without dropping the table structure. The following SQL command would be used:
TRUNCATE TABLE Employees;This will remove all rows from the `Employees` table but keep the table intact for future use.
Important Notes
- The `TRUNCATE TABLE` command is more efficient than `DELETE` because it doesn't log individual row deletions.
 - It cannot be rolled back if used outside of a transaction (unless you're using the `BEGIN TRANSACTION` and `ROLLBACK` keywords in SQL Server).
 - It does not fire triggers, so any actions tied to those triggers (such as updating related tables) will not be performed.
 - You cannot truncate a table that is referenced by a foreign key constraint.
 
When to Use TRUNCATE
Consider using `TRUNCATE TABLE` when you need to quickly remove all rows from a table without affecting the table's structure. It's particularly useful for temporary tables or large tables where performance is a concern, and you don’t need to log each row deletion.
Conclusion
The `TRUNCATE TABLE` command in SQL Server is a highly efficient way to remove all data from a table while preserving its structure. However, you should be aware of its limitations and use cases to ensure that it is the right tool for the job.