SQL TRUNCATE DATABASE ? How to TRUNCATE ALL TABLES

user609511 picture user609511 · May 17, 2011 · Viewed 115.2k times · Source

I use SQL server 2008 R2.

Is there a SQL command to empty the database, instead of having to truncate all 20 my tables?

I just want to delete the data not the structure.

Answer

Mark S. Rasmussen picture Mark S. Rasmussen · May 17, 2011

You can use the sp_MSforeachtable stored procedure like so:

USE MyDatabase
EXEC sp_MSforeachtable 'TRUNCATE TABLE ?'

Be warned that this will delete (by truncation) ALL data from all user tables. And in case you can't TRUNCATE due to foreign keys etc. you can run the same as a delete:

USE MyDatabase
EXEC sp_MSforeachtable 'DELETE FROM ?'