查看数据库所有表数据占用的空间大小

exec sp_MSForEachTable
@precommand=N'
create table ##(id int identity,表名 sysname,字段数 int,记录数 int,保留空间 Nvarchar(20),使用空间 varchar(20),索引使用空间 varchar(20),未用空间 varchar(20))',
@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 ##'

原文地址:https://www.cnblogs.com/lucky-donkey/p/14794142.html