獲取表所占容量

来源:互联网 发布:ubuntu中文输入法切换 编辑:程序博客网 时间:2024/04/28 10:27
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 = 0BEGIN   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_cursorDEALLOCATE Info_cursorGO  --读取exec get_tableinfoselect *from tablespaceinfo order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc


原创粉丝点击