Q:

Listar todas las bases de datos que contengan una determinada tabla

Quiero listar todos las bases de datos de un determinado servidor Sql Server (2008 o superior) que contengan una determinada tabla. He visto varios ejemplos desde cursores, procedimientos almacenados que recorren las bases de datos del servidor hasta el uso de sp_msforeachdb, el cual en varios lugares desaconsejan. ¿Cual seria la mejor forma para hacer esto? 
Pongo como estoy haciéndolo actualmente:
    Dim daBBDD As New SqlClient.SqlDataAdapter("SELECT QUOTENAME(name) Name FROM sys.databases WHERE database_id > 4 AND state = 0 ORDER BY name", CnxGestion)
    Dim dtBBDD As New DataTable("DDBB")
    daBBDD.Fill(dtBBDD)

    Dim daTable As SqlClient.SqlDataAdapter
    Dim dtTable As DataTable

    For Each _bbdd As DataRow In dtBBDD.Rows
        daTable = New SqlClient.SqlDataAdapter(String.Format("SELECT * FROM {0}.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TABLA_BUSCADA'", _bbdd(0)), CnxGestion)
        dtTable = New DataTable(_bbdd(0).ToString)
        daTable.Fill(dtTable)
        If dtTable.Rows.Count > 0 Then
            ''Contiene la tabla
        else
            ''No contiene la tabla
        End If
    Next

A:

Prueba con:
SELECT 
    name 
FROM 
    sys.databases 
WHERE CASE WHEN 
    state_desc = 'ONLINE' THEN OBJECT_ID(QUOTENAME(name) 
    + '.[dbo].[TABLA_BUSCADA]', 'U') END IS NOT NULL

Sacado de esta pregunta de SOeng

