如何从数据库的所有表中删除所有记录?我可以用一个SQL命令来完成它,还是每个表需要一个SQL命令?

推荐答案

SQLMenace的解决方案对我来说很有效,只是对数据的删除方式做了一点小小的调整——DELETE FROM而不是TRUNCATE.

-- disable referential integrity
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' 
GO 

EXEC sp_MSForEachTable 'DELETE FROM ?' 
GO 

-- enable referential integrity again 
EXEC sp_MSForEachTable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL' 
GO

Sql相关问答推荐

使用收件箱运行多个SQL Update字符串,但出现错误

解析键-值对,根据值 Select ,并使用SQL创建新列

一个SQL查询将在需要的地方多次返回同一成员

没有循环的SQL更新多个XML node 值

SQL SELECT MOST NEST TIMESTAMP BEAT ORDER

如何从Spark SQL的JSON列中提取动态数量的键值对

表函数的作用域和功能

最小非重复集的SQL查询

需要使用SQLite查询进行一些奇怪的时间转换

当active=1时,是否可以创建id为的唯一索引?

向表中添加新列取决于表的日期列(unpivot)

将时间戳四舍五入到最近 10 分钟的查询

试图找到两个身份列表的交集(列表的长度不同),但获取列 id 不明确?

当我返回 sql 列时,有没有办法只反转数字? ( hebrew )

SQL 查询是否返回列表中仅包含某些值而不包含其他值的行?

什么是 100.它与 100 有什么区别?

将一名成员金额分配给群组内的其他成员

从 varchar 列中删除特殊字符后的前面的零和字符时遇到问题

使用 R 遍历 SQL 查询,每次替换一个变量

在 Athena / Presto 中提取 JSON 对象以获取动态密钥