If exists (Select * from sysobjects where name = 'SpaceUsed_sp') drop proc SpaceUsed_sp Go Create proc SpaceUsed_sp /* ** Show how much space each table is using ** Steve Buchanan 1/14/03 */ as set nocount on create table #result ( name varchar(40), rows int , reserved varchar(15), data varchar(15), index_size varchar(15), unused varchar(15)) Declare @id varchar(40) DECLARE x CURSOR FOR SELECT name from sysobjects where type = 'U' OPEN x FETCH NEXT FROM x INTO @id WHILE @@FETCH_STATUS = 0 BEGIN insert #result exec ('sp_spaceused ' + @id) FETCH NEXT FROM x INTO @id END CLOSE x DEALLOCATE x select name, rows, reserved = convert(int, substring(reserved , 1, patindex('% kb%',reserved ) -1)), data = convert(int, substring(data , 1, patindex('% kb%',data ) -1)), index_size = convert(int, substring(index_size, 1, patindex('% kb%',index_size) -1)), unused = convert(int, substring(unused , 1, patindex('% kb%',unused ) -1)) into #result1 from #result select * from #result1 order by reserved desc Select TotalReserved = sum(reserved) from #result1 go exec SpaceUsed_sp