You can return a single result-set using UNION ALL (instead of one result-set per database)
DECLARE @ObjectSQL NVARCHAR(MAX)
SET @ObjectSQL = ''
SELECT @ObjectSQL = COALESCE(@ObjectSQL,'') + CHAR(13) + CHAR(10)
+ 'SELECT ' + QUOTENAME([Name],'''') + ' as DbName,
COUNT(1) AS CntObject
FROM ' + QUOTENAME([Name],'') + '.DBO.SYSOBJECTS UNION ALL'
FROM SYS.DATABASES
SET @ObjectSQL = LEFT(@ObjectSQL, LEN(@ObjectSQL) - 9)
PRINT (@ObjectSQL)
EXECUTE (@ObjectSQL)
commented on May 7 2012 5:09AM