USE
< db_name
>
sp_MSforeachtable
@command1 = 'EXEC sp_spaceused ''?''' , @whereand =
'or OBJECTPROPERTY(o.id, N''IsSystemTable'') = 1'
-----改进版
IF
EXISTS (SELECT * FROM sysobjects WHERE name = N'TabSize' AND type in (N'U'))
DROP
TABLE dbo.TabSize
CREATE
TABLE dbo.TabSize(
Name
CHAR (255),
Rows
INT,
Reserved
CHAR (255),
Data
CHAR (255),
Index_size
CHAR (255),
Unused
CHAR (255)
)
exec
sp_MSForEachTable
'INSERT INTO dbo.TabSize EXEC sp_spaceused "?"'
SELECT
*
FROM
dbo.TabSize
ORDER
BY convert(int,replace(Data,' KB','')) DESC
Drop
table dbo.TabSize