Question: We have already created the database framework, with all the relations and dependencies. But inside the tables were just the dummy data, and we need to get rid of these dummy data, and start adding the correct ones. How can we clear everything and leave the primary keys (IsIdentity: yes) back to zero, and also without affecting the foreign-table relational structure.

Thanks a lot!

Answer: 
You can take the following steps:

```
-- disable all foreign key constraints
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

-- delete data in all tables
EXEC sp_MSForEachTable "DELETE FROM ?"

-- enable all constraints
exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"

```

More on disabling constraints and triggers [here](https://stackoverflow.com/questions/123558/sql-server-2005-t-sql-to-temporarily-disable-a-trigger#123966)

if some of the tables have identity columns we may want to reseed them

```
EXEC sp_MSforeachtable "DBCC CHECKIDENT ( '?', RESEED, 0)"

```

Note that the behaviour of RESEED differs between brand new table, and one which had had some date inserted previously from [BOL](http://msdn.microsoft.com/en-us/library/aa258817(SQL.80).aspx):

> 
> **DBCC CHECKIDENT ('table\_name', RESEED, newReseedValue)**
> 
> 
> The current identity value is set to
>  the newReseedValue. If no rows have
>  been inserted to the table since it
>  was created, the first row inserted
>  after executing DBCC CHECKIDENT will
>  use newReseedValue as the identity.
>  Otherwise, the next row inserted will
>  use newReseedValue + 1. If the value
>  of newReseedValue is less than the
>  maximum value in the identity column,
>  error message 2627 will be generated
>  on subsequent references to the table.
> 
> 
>
I'd use TRUNCATE:

```
-- Truncate table (very fast, and it resets Identity as well)
EXEC sp_MSForEachTable "TRUNCATE TABLE ?"

```

Of course, disable and re-enable check constraints too, as suggested by kristof.