日期:2014-03-05  浏览次数:20445 次

实用的存储过程之一

笔者工作的公司采用的是SQLServer数据库,每天都要处理大量的数据,由于笔者进公司的时间比较晚,公司现有的大部分的程序都是以前的程序员留下的,因为他们没有相关的文档,笔者对于后台数据库的很多表的结构和数据都不甚了解,给日常的维护造成了很大的麻烦。www.chinai tp 采吧采吧不是罪 ow er.comIsmwh

在对后台数据库进行研究的过程中,我需要得到数据库的某些相关信息,比如,我希望知道各个用户表占用多少磁盘空间,并且排列出来,可以让我知道哪些表比较大,数据比较多等等——我相信,这可能也是不少数据库管理员所关心的问题,所以我决心做一个通用的存储过程。我对系统的存储过程sp_spaceused加了一些改动,以适合我的要求。希望这个存储过程能对大家有些帮助。存储过程如下:www.chinai tp 采吧采吧不是罪 ow er.comIsmwh

if exists(select name from sysobjects where name='spaceused' and type='p')www.chinai tp 采吧采吧不是罪 ow er.comIsmwh

Drop procedure spaceusedwww.chinai tp 采吧采吧不是罪 ow er.comIsmwh

GOwww.chinai tp 采吧采吧不是罪 ow er.comIsmwh

create procedure spaceused www.chinai tp 采吧采吧不是罪 ow er.comIsmwh

aswww.chinai tp 采吧采吧不是罪 ow er.comIsmwh

beginwww.chinai tp 采吧采吧不是罪 ow er.comIsmwh

 www.chinai tp 采吧采吧不是罪 ow er.comIsmwh

declare @id       int                  -- The object id of @objname.www.chinai tp 采吧采吧不是罪 ow er.comIsmwh

declare @type       character(2) -- The object type.www.chinai tp 采吧采吧不是罪 ow er.comIsmwh

declare       @pages       int                  -- Working variable for size calc.www.chinai tp 采吧采吧不是罪 ow er.comIsmwh

declare @dbname sysnamewww.chinai tp 采吧采吧不是罪 ow er.comIsmwh

declare @dbsize dec(15,0)www.chinai tp 采吧采吧不是罪 ow er.comIsmwh

declare @logsize dec(15)www.chinai tp 采吧采吧不是罪 ow er.comIsmwh