DECLARE @SQL VARCHAR(MAX)
SELECT @SQL = 'DECLARE @SQL VARCHAR(MAX)
' + Util.dbo.StringConcat('SELECT @SQL = ISNULL(@SQL, '''')
+ ISNULL(Util.dbo.StringConcat(DISTINCT ''USE ' + d.name + '
ALTER SCHEMA dbo TRANSFER ['' + sc.NAME + ''].[''
+ o.NAME + ''];
GO
'', ''''), '''') + ISNULL(Util.dbo.StringConcat(DISTINCT ''USE ' + d.name + '
DROP SCHEMA ['' + sc.NAME + ''];
GO
'', ''''), '''')
FROM ' + d.name + '.SYS.schemas sc
INNER JOIN ' + d.name + '.sys.objects o ON o.schema_id = sc.schema_id
INNER JOIN ' + d.name + '.sys.database_principals p ON p.principal_id = sc.principal_id
WHERE sc.name LIKE ''%\%''
AND sc.name <> p.name
', '
') + '
EXEC Util.dbo.PrintLargeText @SQL'
FROM sys.databases d
--EXEC Util.dbo.PrintLargeText @SQL
EXEC (@SQL)