直接执行以下脚本即可:
exec sp_MSForEachTable @precommand=N' create table ##(id int identity,表名 sysname,字段数 int,记录数 int,保留空间 Nvarchar(15),使用空间 varchar(15),索引使用空间 varchar(15),未用空间 varchar(15))', @command1=N' insert ##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) exec sp_spaceused ''?'' update ## set 字段数=(select count(*) from syscolumns where id=object_id(''?'')) where id=scope_identity()', @postcommand=N' select * from ## order by convert(INT,replace(保留空间,"KB","")) desc drop table ##'