截断SQL Server 2005中数据库的所有表

Truncate all tables of a database in SQL Server 2005

如何截断数据库的所有表?


我用脚本

1
2
3
4
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO

为什么要截断所有表? 如果您想要一个空数据库,为什么不运行数据库的CREATE脚本?

如果要截断外键引用的表,则必须先删除FK约束。 在最近的SQL Server版本中,禁用约束是不可能的。


你可以看到这篇文章:how-do-you-trunc-all-tables-in-a-database-using-tsql


重置自动增量? 我不确定你是否正确理解它是如何工作的。

主键递增由SQL Server使用IDENTITY规范处理。 如果您的表中没有数据,它将始终从0开始。

如果我是你,我会去浏览你的编程书籍并获取一些基本的数据库知识,因为它听起来你在那里遗漏了一些基本的事实。