Finding Objects In Schema

A while back I was asked to identify schemas that didn’t have any objects.  Since it was a useful query, I thought I’d share it.

SELECT s.name as schema_name
,COALESCE(o.type_desc, '--NO ITEMS--') as type_desc
,NULLIF(COUNT(DISTINCT o.name),0) as item_count
FROM sys.schemas s
LEFT OUTER JOIN sys.all_objects o ON s.schema_id = o.schema_id
WHERE s.name NOT IN ('INFORMATION_SCHEMA', 'sys')
GROUP BY s.name, o.type_desc
ORDER BY s.name, o.type_desc