exec sp_msforeachdb ' use [?]; if db_id() in (select database_id from sys.databases where state = 0 and database_id > 4) INSERT INTO <yourtable> ( [DTS_DATE_INSERTED] ,[DTS_DB_NAME] ,[DTS_INSTANCE] ,[DTS_TABLE_NAME] ,[DTS_ROW_COUNT] ,[DTS_TABLE_SPACE_GB] ) SELECT [DTS_DATE_INSERTED] = getdate(), [DTS_DB_NAME] = db_name(db_id()), [DTS_INSTANCE] = @@SERVERNAME, [DTS_TABLE_NAME] = QUOTENAME(s.name) + ''.'' + QUOTENAME(t.Name), [DTS_ROW_COUNT] = part.rows, [DTS_TABLE_SPACE_GB] = CAST((SUM( DISTINCT au.Total_pages) * 8 ) / 1024.000 / 1024.000 AS NUMERIC(18, 10)) FROM SYS.Tables t INNER JOIN sys.schemas s ON t.schema_id = s.schema_id INNER JOIN SYS.Indexes idx ON t.Object_id = idx.Object_id INNER JOIN SYS.Partitions part ON idx.Object_id = part.Object_id AND idx.Index_id = part.Index_id INNER JOIN SYS.Allocation_units au ON part.Partition_id = au.Container_id INNER JOIN SYS.Filegroups fGrp ON idx.Data_space_id = fGrp.Data_space_id INNER JOIN SYS.Database_files Df ON Df.Data_space_id = fGrp.Data_space_id WHERE t.Is_ms_shipped = 0 AND idx.Object_id > 255 GROUP BY t.Name, s.name, part.rows ORDER BY [DTS_TABLE_SPACE_GB] DESC'