为 sp_MSforeachtable 执行的 DROP 语句计数

Posted

技术标签:

【中文标题】为 sp_MSforeachtable 执行的 DROP 语句计数【英文标题】:Count of DROP Statements Executed for sp_MSforeachtable 【发布时间】:2013-04-08 11:33:11 【问题描述】:

Am 删除数据库中的所有表名

EXEC sp_MSforeachtable 'DROP TABLE ?'

有什么方法可以让我计算删除的表数。

谢谢, 秘鲁

【问题讨论】:

【参考方案1】:
DECLARE @before int;

SELECT @before = COUNT(*) FROM sys.tables;
EXEC sp_MSforeachtable 'DROP TABLE ?'
SELECT @before - COUNT(*) FROM sys.tables

【讨论】:

SELECT COUNT(*) - @before FROM sys.tables 返回 NULL 第一个 SELECT 分配它。它将为零。 ***.com/questions/2552086/… 我得到 NULL。第二个 SELECT 做什么?第一个返回数字第二个 SELECT 返回 NULL 在我的问题中添加了结果截图 第二次选择计算前后的差值。要获得 NULL,您必须在 @before 中有 NULL。我已经尝试过了,它对我有用

以上是关于为 sp_MSforeachtable 执行的 DROP 语句计数的主要内容,如果未能解决你的问题,请参考以下文章

sp_MSforeachtable - 解析动态sql

系统存储过程sp_MSforeachtable和sp_MSforeachdb使用说明

数据库中表内容的删除总结(总有你需要的)

如何知道数据库中哪些表没有记录

如何知道数据库中哪些表没有记录

SQL Server 如何清空数据库所有表数据