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

2016-01-29 16:26 43 1 收藏

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

【 tulaoshi.com - SQLServer 】

 

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

如:sp_spaceused 'tablename'

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)


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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

CREATE PROCEDURE get_tableinfo AS
 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') 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) and 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) as int) desc

 

来源:http://www.tulaoshi.com/n/20160129/1498614.html

延伸阅读
1:获取当前数据库中的所有用户表 select Name from sysobjects where xtype='u' and status=0 2:获取某一个表的所有字段 select name from syscolumns where id=object_id('表名') 3:查看与某一个表相关的视图、存储过程、函数 select a.* from sysobjects a, syscomments b where a.id = b.i...
标签: 电脑入门
近一年时间里,有不少网友发邮件向我询问,如何在不格式化硬盘的情况下调整磁盘分区的容量大小。本想还是像以前一样,回个邮件。但问的人多了,觉得有必要写个操作手册出来,所以我就连夜赶写了一份操作文档并录制了视频,供有需要的网友下载。本教程难免有些纰漏,望多多包含。 PQMagic 8.0中文版或8.0更高版本。 尽量不要使用比8.0版本...
出现这些情况的原因,往往是因为数据库有些损坏,或索引不完整。 在ACCESS中,有个修复数据库的功能可以解决这个问题,在SQL企业管理器,没有这个功能,要用语句来完成,下面就介绍如何用SQL语句完成数据库的修复,需要注意的是,在进行下面的操作时,必须断开所有用户的连接:  代码如下: USE MASTER GO sp_dboption '你的数据库...
标签: 硬盘 MAC
点击“前往” 在Mac桌面最上方的菜单栏中,找到“前往”这一项并点击一下。 点击“电脑” 在弹出的下拉列表中,选择“电脑”并点击一下进入。 找到类似电脑硬盘的图标 在弹出的界面右边栏中,找到一个外观类似电脑硬盘的图标。 选择“显示简介” 选择这个硬盘,然后两只手指同时点击触摸板,在弹出的...
标签: SQLServer
1.2 SQL Server 2000 的新特性 SQL Server 2000 全面扩展了SQL Server 7.0 的性能可靠性和易用性使它成为一个杰出的数据库平台可用于大型联机事务处理数据仓库以及电子商务等 SQL Server 2000 的新特性主要有以下内容 1.2.1 数据库增强 SQL Server 2000 引进了数据库和服务器增强功能以及其它一些新的特性 1 XML Extensible Markup Language 扩...

经验教程

179

收藏

31
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部