利用sp_spaceused可能查看到单下数据或表的使用信息,但它一次只能查看一个表的信息,为了方便管理数据库里表的信息,对sp_spaceused作了简单的扩展,只要在当前的数据库里运行p_spaceUsed_extend 就可以当前数据库下所有的表的信息都汇集在一起。
--db_hezuo.dbo.p_spaceUserd_extend
CREATE PROCEDURE p_spaceUsed_extend
as
begin
declare @sql nvarchar(4000)
create table #tb_info(
name varchar(265),
rows bigint,
reserved varchar(265),
data varchar(265),
index_size varchar(265),
unused varchar(265)
)
declare cur_info cursor
FORWARD_ONLY
for
select name from sysobjects where xtype='u'
open cur_info
declare @name varchar(100)
fetch next from cur_info into @name
while @@FETCH_STATUS=0
begin
select @sql='insert into #tb_info(name,rows,reserved,data,index_size,unused)'+char(13)+' exec sp_spaceused'''+@name+''''
execute(@sql)
fetch next from cur_info into @name
end
CLOSE cur_info
DEALLOCATE cur_info
select * from #tb_info
drop table #tb_info
end