Ich bin nicht mit dem SQL Server-Datenwörterbuch vertraut, aber ich habe angenommen, dass das, was ich versuche, möglich ist.SQL Server-Datenwörterbuch abfragen, um alle Datenbanken mit Tabelle 'x' zu finden
Wir haben eine Reihe von replizierten Datenbanken, unter verschiedenen Namen sagen: Client1 Client2 Client3
Anstatt sich auf eine Namenskonvention zu verlassen, ich hatte gehofft, dass diese Datenbanken zu identifizieren, basierend darauf, ob sie einen Schlüssel enthalten Tabelle, nennen Sie es MyTable. So begann eine Abfrage zu denken wie die folgenden gebraucht wurde:
SELECT db.name
FROM sys.databases db
JOIN sys.tables tbl ON ??
WHERE tbl.Name = 'MyTable'
dies nicht funktioniert, wie ich kann nicht sehen, wie sys.tables beizutreten direkt an sys.databases oder indirekt, und auch sys.tables ist eine Ansicht, die auf der aktiven Datenbank basiert, und nicht auf einem vollständigen Satz von Tabellen für alle Datenbanken.
Kann jemand eine passende Abfrage für diese Situation identifizieren?
+1 Angepasst an die unten für meinen Zweck, da ich ein einzelnes Abfrageergebnis benötigt. Ich hoffe immer noch auf eine reine Abfrage Antwort, wenn jemand eine hat. CREATE TABLE #ClientDbs ( -Name varchar (max) ) master.sys.sp_MSforeachdb 'USE EXECUTE? INSERT INTO #ClientDbs SELECT table_catalog VON INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '' Profil '' ' SELECT * FROM #ClientDbs DROP TABLE #ClientDbs – MattH