经常遇到需要对sql server2000 进行维护操作需要了解每个数据表占用空间情况,便于对数据库进行优化。用以下sql语句可以实现查询数据库所有表行数及空间占用情况。
create table #aa(
name varchar(250),
rows int,
reserved varchar(200),
data varchar(200),
index_size varchar(200),
unused varchar(200)
)
exec sp_msforeachtable "insert into #aa EXEC ('sp_spaceused ''?''')"
select * from #aa order by convert(int,left(data,len(data)-3)) desc, rows desc