【发布时间】:2020-02-25 16:41:42
【问题描述】:
我发现这个脚本可以清除一个数据库中的所有表。
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'DELETE FROM ?'
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO
我不熟悉 Microsoft SQL Server,目前我右键单击并运行查询。我有 100 个数据库要清理。
如何以编程方式清除所有数据库中的所有表?
【问题讨论】:
-
“清除”所有表格是什么意思?删除所有数据?考虑到您应该有外键,这不是一项简单的任务。
-
老实说,如果您确实需要“干净”的数据库,最好
DROP然后从源代码管理中重新创建它们吗? -
如果您需要清空一个实例上超过 100 个数据库的每个表中的数据,那就大错特错了。这是一个巨大的危险信号,您需要认真考虑重写您的大部分系统,或者您正试图破解某人。无论哪种方式,你试图完成的事情听起来都非常错误,甚至都不好笑。
-
将所有数据库提交到 git - 全部删除并通过 git 部署
标签: sql-server