MS SQL Server数据库批量查看表的大小的三种方法

在MS SQL Server数据库批量查看表的大小的三种方法
——网上的语句由于互相转抄,多有谬误,以下语句经调试运行无误。


1.查看单表大小:

sp_spaceused '表 '
如果不写表名,就是看整个库的!

2.察看数据库所有表的大小:
 
方法一:内置存储过程法:

EXEC sp_MSforeachtable @command1="print '?'",@command2="sp_spaceused '?'"

方法二:Transact-SQL语句:

--Transact-SQL语句——列表输出
SET   NOCOUNT   ON
DECLARE   @db   VARCHAR(20)
--获取当前数据库
SET   @db=db_name()
DBCC   UPDATEUSAGE(@db)   WITH   NO_INFOMSGS
GO

CREATE   TABLE   #tblSpace
(
数据表名称   varchar(250)   null,
记录笔数   int   null,
保留空间   varchar(15)   null,
数据使用空间   varchar(15)   null,
索引使用空间   varchar(15)   null,
未使用空间   varchar(15)   null
)
DECLARE   @tblname   varchar(250)
DECLARE   curTbls   CURSOR   FOR
SELECT   TABLE_NAME   FROM   Information_Schema.TABLES
--BASE TABLE很重要
WHERE   TABLE_TYPE= 'BASE TABLE '

OPEN   CurTbls
FETCH   NEXT   FROM   curTbls   INTO   @tblName

WHILE   @@FETCH_STATUS=0
BEGIN
INSERT   #tblSpace   EXEC   sp_spaceused   @tblName
FETCH   NEXT   FROM   curTbls   INTO   @tblName
END
CLOSE   CurTbls
DEALLOCATE   curTbls

SELECT    FROM   #tblSpace   ORDER   BY   记录笔数   DESC

DROP   TABLE   #tblSpace

posted on 2011-06-21 13:48  ayn  阅读(842)  评论(0编辑  收藏  举报

导航