If anyone is interested the SQL2000 equivalent is
USE Master GO CREATE PROC dbo.sp_DBA_spaceused_AllTables2 @updateusage varchar(5)='false' AS SET NOCOUNT ON IF @updateusage IS NOT NULL BEGIN -- Allow for case sensitivity SET @updateusage=LOWER(@updateusage) IF @updateusage NOT IN ('true','false') BEGIN RAISERROR(15143,-1,-1,@updateusage) RETURN(1) END END -- Retrieve the current page size for the OS DECLARE @KB DEC(15) SELECT @KB = low/1024.0 FROM master.dbo.spt_values WHERE number=1 AND type='E' SELECT MAX(DB_NAME()) AS DatabaseName , MAX(GETDATE()) AS DateSampled , U.Name+'.'+O.Name AS TableName , MAX(CASE WHEN I.Indid<2 THEN I.rows ELSE 0 END) AS rows, SUM(CASE WHEN I.Indid IN(0,1,255) THEN I.reserved ELSE 0 END) * @KB AS reserved , SUM(CASE WHEN I.indid<2 THEN I.dpages ELSE 0 END + CASE WHEN I.indid=255 THEN used ELSE 0 END) * @KB AS data , SUM(CASE WHEN I.indid<2 THEN used-dpages ELSE 0 END) * @KB AS index_size , SUM(CASE WHEN I.indid IN(0,1,255) THEN I.reserved - I.used ELSE 0 END) *@KB AS Unused FROMdbo.sysobjects AS O INNER JOIN dbo.sysindexes AS I ON O.id = I.id INNER JOIN dbo.sysusers AS U ON O.uid = U.uid GROUP BY U.Name+'.'+O.Name GO