SQL Server:删除所有表的所有行

3
我想彻底清空数据库并重置数据。有什么最快的方法吗?或者,有什么命令可以删除表中的所有行(然后我将为所有表重复该过程)?
谢谢。
4个回答

11

使用这种方法可以从所有表中删除内容,即使那些被外键约束引用的表也可以。你可以对其进行改进,使其检查外键约束的缺失并在这些情况下执行TRUNCATE TABLE

EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_msforeachtable 'DELETE FROM ?'
EXEC sp_msforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'

选择数据库怎么样?只需要说“use X”吗? - Hassan Faghihi

10
如果您不想编写脚本并删除表格,则可以使用循环的方式来完成此操作。以下是可能最简单的方法:
```html

sp_MsForEachTable 'TRUNCATE TABLE ?'

```
注:保留了HTML标记。

1
我只想提一下,对于被外键引用的表,截断是不可能的。因此,这可能并不适用于所有表。抱歉,刚才看到Phil Hunt已经正确回答了。 - Bernhard Kircher

1

删除数据库并重新创建。


0
使用SQL Server Management Studio为表编写DROP和CREATE语句的脚本,然后运行该脚本。右键单击数据库并选择任务-->生成脚本。通过向导运行(确保在“选择脚本选项”步骤中选中Script Drop选项),并选择所有表。生成的脚本应该删除所有表,然后重新创建它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接