asp学习网: 首页 >> asp与数据库 >> sql server教程 >> 如何获取SQLServer数据库里表的占用容量大小

如何获取SQLServer数据库里表的占用容量大小

其实只要使用系统内置的存储过程sp_spaceused就可以得到表的相关信息

如:sp_spaceused 'tablename'


以下是为了方便写的一个存储过程,目的是把当前的所有表的相关信息全部都保存在一
个指定的表里面

CREATE PROCEDURE get_tableinfo AS



if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ta
blespaceinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

create table tablespaceinfo --创建结果存储表

(nameinfo varchar(50) ,

rowsinfo int , reserved varchar(20) ,

datainfo varchar(20) ,

index_size varchar(20) ,

unused varchar(20) )





delete from tablespaceinfo --清空数据表



declare @tablename varchar(255) --表名称



declare @cmdsql varchar(500)



DECLARE Info_cursor CURSOR FOR

select o.name

from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTable') = 1

and o.name not like N'#%%' order by o.name



OPEN Info_cursor



FETCH NEXT FROM Info_cursor

INTO @tablename



WHILE @@FETCH_STATUS = 0

BEGIN



if exists (select * from dbo.sysobjects where id = object_id(@tablename) a
nd OBJECTPROPERTY(id, N'IsUserTable') = 1)

execute sp_executesql

N'insert into tablespaceinfo exec sp_spaceused @tbname',

N'@tbname varchar(255)',

@tbname = @tablename



FETCH NEXT FROM Info_cursor

INTO @tablename

END



CLOSE Info_cursor

DEALLOCATE Info_cursor

GO





执行存储过程

exec get_tableinfo

查询运行该存储过程后得到的结果

select *

from tablespaceinfo

order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) a
s int) desc
from:asp学习网/title:如何获取SQLServer数据库里表的占用容量大小/ time:2007-8-14 17:19:45

本文主题SQLServer

ASP.NET存取SQLServer数据库图片

通过SQLSERVER重启SQLSERVER服务和计算机

access升级到SQLServer如何调整字段类型及函数:JET SQL 和T-SQL中的同义词

Access数据导入到SQLServer2005

SQLServer2005中的增强数据类型VARCHAR(MAX)

SQLServer2005数据库还原到SQLServer2000

单引号与双引号 javascript & vbscript & vb & sql &sqlserver

MSSQLServer查询分页

asp教程 ©2006-2007 aspxuexi.com | 关于站点 | 版权隐私 | 站内搜索
复制或者翻版 请于夜间进行