我们有时需要将数据库内的所有表数据删除,例如调整账套,恢复损坏数据库时等,然而不能直接把表删了,因为要保留表结构以及一些约束。这里使用如下sql命令:
先将所有表的约束取消,然后执行删除所有表,最后将约束启用。非常简单直接.

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
EXEC sp_MSFOREACHTABLE 'SELECT * FROM ?'

参考链接:http://www.jb51.net/article/42239.htm