扩展sp_spaceused 系统过程

 

利用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

posted @ 2009-08-19 11:41  db's jim  阅读(662)  评论(3编辑  收藏  举报