我认为大多数人都知道如何通过GUI(右键单击表,属性)执行此操作,但是在T-SQL中执行此操作完全不可行。
创建表#tmpSizeChar(
table_name sysname,
row_count int,
reserved_size varchar(50),
data_size varchar(50),
index_size varchar(50),
未使用大小varchar(50))
创建表#tmpSizeInt(
table_name sysname,
row_count int,
reserved_size_KB int,
data_size_KB int,
index_size_KB int,
未使用大小(KB int)
开启NOCOUNT
插入#tmpSizeChar
EXEC sp_msforeachtable'sp_spaceused''?'''
插入#tmpSizeInt(
table_name,
row_count,
reserved_size_KB,
data_size_KB,
index_size_KB,
未使用大小_KB
)
SELECT [table_name],
row_count,
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。