List all Schemas of a SQL Instance

 

DECLARE @ListSchemas NVARCHAR(MAX) SELECT @ListSchemas = STUFF((SELECT ' UNION ALL SELECT ' + + QUOTENAME(name,'''') + ' as DbName, cast(Name as varchar(128)) COLLATE DATABASE_DEFAULT AS Schema_Name FROM ' + QUOTENAME(name) + '.sys.schemas where left(cast(Name as varchar(128)) COLLATE DATABASE_DEFAULT,3)<>''db_'' AND (cast(Name as varchar(128)) COLLATE DATABASE_DEFAULT)<>''sys'' AND (cast(Name as varchar(128)) COLLATE DATABASE_DEFAULT)<>''INFORMATION_SCHEMA'' AND (cast(Name as varchar(128)) COLLATE DATABASE_DEFAULT)<>''guest'' ' FROM sys.databases Order BY [name] FOR XML PATH(''),type).value('.','nvarchar(max)'),1,12,'') SET @ListSchemas = @ListSchemas + ' ORDER BY DbName, Schema_Name' EXECUTE (@ListSchemas)