2010-04-22 46 views
0

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

例如,代码:

EXEC sp_spaceused 'myTable'

你获得的所有行的大小,但是我想计算的大小不是一个单一的表,但所有这些,并使用相同子句,在伪代码中是这样的:

foreach(Table myTable in Database) 
    EXEC sp_spaceused 'myTable WHERE AppId='abc'' 

我怎样才能用T-SQL实现这一点?

在此先感谢

编辑:为更好地澄清

回答

4
-- Plop the data into a temp table 
Select myFields into #tmpdata from myTable where myCondition = 'foo' 

use tempdb 
GO 
exec sp_spaceused #tmpdata 
+0

好主意。我可能会使用“Select myFields into tmpRealTable ...”,然后放弃它,但没有区别 – gbn 2010-04-22 15:04:05

+0

感谢您的答案,它是一个好主意,但仅适用于一张表。但是,正如我在问题中澄清的那样,我想在所有表格中都这样做。为它们创建临时表将是一个大脚本..有没有办法用循环或其他方式做到这一点? – 2010-04-22 15:24:32

+0

此外,我现在在SSMS中试过,并给我这个错误:“对象'#tmpdata'不存在于数据库'myDb'中或对此操作无效。” 但是,如果我做“选择*从#tmpdata”,给出正常的结果。所以我想知道这个解决方案不起作用。 – 2010-04-22 15:30:15

相关问题