我认为大多数人都知道如何通过 GUI(右键单击表、属性)来执行此操作,但在 T-SQL 中执行此操作完全很困难。
4018 次
3 回答
13
创建表#tmpSizeChar (
表名系统名,
row_count 整数,
reserved_size varchar(50),
数据大小 varchar(50),
index_size varchar(50),
未使用大小 varchar(50))
创建表#tmpSizeInt (
表名系统名,
row_count 整数,
reserved_size_KB int,
data_size_KB 整数,
index_size_KB 整数,
未使用的大小 KB 整数)
设置无计数
插入 #tmpSizeChar
EXEC sp_msforeachtable 'sp_spaceused ''?'''
插入 #tmpSizeInt (
表名,
行数,
reserved_size_KB,
data_size_KB,
index_size_KB,
未使用大小 KB
)
选择 [table_name],
行数,
CAST(SUBSTRING(reserved_size, 0, PATINDEX('% %', reserved_size)) AS int)reserved_size,
CAST(SUBSTRING(data_size, 0, PATINDEX('% %', data_size)) AS int)data_size,
CAST(SUBSTRING(index_size, 0, PATINDEX('% %', index_size)) AS int)index_size,
CAST(SUBSTRING(unused_size, 0, PATINDEX('% %', used_size)) AS int)unused_size
来自#tmpSizeChar
/*
删除表#tmpSizeChar
删除表#tmpSizeInt
*/
选择 * 从 #tmpSizeInt
ORDER BY reserved_size_KB DESC
于 2008-08-05T19:11:11.453 回答
0
于 2008-08-05T19:16:19.133 回答
0
sp_spaceused 表名
其中 tableName 是您想知道的表的名称。
于 2016-01-14T16:40:56.830 回答