我们有时需要将数据库内的所有表数据删除,例如调整账套,恢复损坏数据库时等,然而不能直接把表删了,因为要保留表结构以及一些约束。这里使用如下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