日期:2014-05-18  浏览次数:20373 次

sqlserver中如何查询某几个表目前的空间大小
找了半天的资料,将mysql的实现了
SQL code
SELECT sum(DATA_LENGTH) as RESERVED FROM information_schema.`TABLES` where TABLE_SCHEMA='database1' and TABLE_NAME = 'datatable1'

但是sqlserver的一直不知道怎么实现,使用
SQL code
exec sp_spaceused datatable1,true

只能查询一张表,如果使用
SQL code
exec sp_spaceused
,得到的结果是分开的。
我想实现的类似下面

得到的某几张表的大小


------解决方案--------------------
SQL code
sp_spaceused  '表名'

------解决方案--------------------
sp_spaceused tb
------解决方案--------------------
写个存贮过程吧
------解决方案--------------------
SQL code
1.

use master 
select * from dbo.sysdatabases

 

2. 

以SQL2000自带PUBS为例

exec sp_MSForEachTable 
@precommand=N'create table ##(
表名 sysname,
记录数 int,
保留空间 Nvarchar(10),
使用空间 varchar(10),
索引使用空间 varchar(10),
未用空间 varchar(10))',
@command1=N'insert ## exec sp_spaceused ''?''',
@postcommand=N'select * from ## order by 记录数 '

------解决方案--------------------
SQL code

--统计数据库里每个表的详细情况
exec sp_MSforeachtable @command1="sp_spaceused '?'"