Sql Server-如何计算数据库中每个表中某些行的大小?

Sql Server-如何计算数据库中每个表中某些行的大小?,sql,sql-server,tsql,size,Sql,Sql Server,Tsql,Size,如何计算每个表中仅某些行的大小 例如,使用以下代码: EXEC sp_spaceused“myTable” 您可以获得所有行的大小,但是我想计算的不是单个表的大小,而是所有表的大小,并对每个表使用相同的子句,类似于伪代码中的以下内容: foreach(Table myTable in Database) EXEC sp_spaceused 'myTable WHERE AppId='abc'' 如何使用T-SQL实现这一点 提前谢谢 编辑:为了更好的澄清好主意。我可能会在tmpRealTa

如何计算每个表中仅某些行的大小

例如,使用以下代码:

EXEC sp_spaceused“myTable”

您可以获得所有行的大小,但是我想计算的不是单个表的大小,而是所有表的大小,并对每个表使用相同的子句,类似于伪代码中的以下内容:

foreach(Table myTable in Database)
  EXEC sp_spaceused 'myTable WHERE AppId='abc''
如何使用T-SQL实现这一点

提前谢谢


编辑:为了更好的澄清

好主意。我可能会在tmpRealTable中使用selectmyfields。。。尽管如此,还是不要再提了,但没什么区别谢谢你的回答,这是个好主意,但只限于一张桌子。然而,正如我在问题中澄清的那样,我希望在所有表格中都这样做。为所有临时表创建临时表将是一个很大的脚本。有没有办法用循环或其他方式来完成此操作?此外,我现在在SSMS中尝试了此操作,并给出了以下错误:数据库“myDb”中不存在对象“tmpdata”,或者该对象对此操作无效。但如果我确实从tmpdata中选择*,则会给出正常的结果。所以我想知道这个解决方案不起作用,这是可能的。您可以创建一个脚本,动态存储您想要的表。请查看如何将sysobjects表连接到syscolumns表,然后使用循环遍历该表。不要使用光标。经过深思熟虑,这可能是一套方便的管理工具。好主意。我可能会在tmpRealTable中使用selectmyfields。。。尽管如此,还是不要再提了,但没什么区别谢谢你的回答,这是个好主意,但只限于一张桌子。然而,正如我在问题中澄清的那样,我希望在所有表格中都这样做。为所有临时表创建临时表将是一个很大的脚本。有没有办法用循环或其他方式来完成此操作?此外,我现在在SSMS中尝试了此操作,并给出了以下错误:数据库“myDb”中不存在对象“tmpdata”,或者该对象对此操作无效。但如果我确实从tmpdata中选择*,则会给出正常的结果。所以我想知道这个解决方案不起作用,这是可能的。您可以创建一个脚本,动态存储您想要的表。请查看如何将sysobjects表连接到syscolumns表,然后使用循环遍历该表。不要使用光标。经过深思熟虑,这可能是一套方便的管理工具。装货单
-- Plop the data into a temp table
Select myFields into #tmpdata from myTable where myCondition = 'foo'

use tempdb
GO
exec sp_spaceused #tmpdata