We have several several servers that host our data. I looked for a way to validate what was in source control and what was not. I put together this script. You will have to to a little editing to make it work for you but it may be helpful.
-- get the list of dbs and servers fro source control
IF OBJECT_ID('tempdb..#sc') IS NOT NULL DROP TABLE #sc
SELECT DISTINCT o.ServerName, o.DatabaseName, ps.ProjectName
INTO #sc
FROM SQLDBControl.dbo.DatabaseObject o
JOIN SQLDBControl.dbo.ProjectServerDBObject psdo ON psdo.ObjectId = o.ObjectId
JOIN SQLDBControl.dbo.ProjectServerDatabase psd ON psd.ServerDbId = psdo.ServerDbId
JOIN SQLDBControl.dbo.ProjectServer ps ON ps.ProjectServerId = psd.ProjectServerId
ORDER BY o.ServerName, o.DatabaseName, ps.ProjectName
-- get the list of databases for the servers
IF OBJECT_ID('tempdb..#db') IS NOT NULL DROP TABLE #db
CREATE TABLE #db (ServerName VARCHAR(255), DatabaseName VARCHAR(255))
INSERT #db SELECT 'ServerA', Name FROM ServerA.master.sys.databases
INSERT #db SELECT 'ServerB', Name FROM ServerB.master.sys.databases
INSERT #db SELECT 'ServerC', Name FROM ServerC.master.sys.databases
-- delete the system and report databases
DELETE FROM #db
WHERE DatabaseName IN ('master'
, 'model'
, 'msdb'
, 'ReportServer'
, 'ReportServerTempDB'
, 'RSExecutionLog'
, 'tempdb') -- system and reporting databases
-- how many are there?
SELECT DatabaseName, COUNT(*) [Count]
FROM #db
GROUP BY #db.DatabaseName
ORDER BY COUNT(*) DESC
-- who is under control and who is not?
SELECT d.ServerName
, d.DatabaseName
, CASE
WHEN s.ServerName IS NULL
THEN 'Uncontrolled'
ELSE 'Controlled'
END AS UnderControl
FROM #db d
LEFT OUTER JOIN #sc s
ON s.ServerName = d.ServerName
AND s.DatabaseName = d.DatabaseName
ORDER BY d.ServerName, d.DatabaseName