2010-04-22 47 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

相關問題