My first thought was to try to use sp_foreachdb
CREATE TABLE #databases(DbName SYSNAME, DbSize BIGINT, Remarks NVARCHAR(100))
INSERT INTO #databases EXEC SP_DATABASES
ALTER TABLE #databases ADD ObjectCount INT
EXEC SP_MSFOREACHDB
'USE [?] ;
UPDATE #databases SET ObjectCount = (SELECT COUNT(*) FROM [sys].[objects])
WHERE DBName = "?"'
SELECT * FROM #databases ORDER BY ObjectCount DESC
DROP TABLE #databases
Regards,
David