Dei por mim a trabalhar numa base de dados em que as relações só existem na teoria, como se não bastasse devem existir cerca de uma centena de tabelas em que algumas delas têm outros tantos campos. A dada altura tive de saber em que tabelas existia o campo um determinado nome, solução:
SELECT sc.[name] AS column_name, so.[name] AS table_name
FROM syscolumns sc
INNER JOIN sysobjects so ON sc.id=so.id
WHERE sc.[name] LIKE '%bocado_do_nome_do_campo%'
Em Oracle seria mais simples: a view user_tab_columns (ou dba_tab_columns, para todos os objectos) tem toda a informação 😉
SELECT A.TABLE_NAME FROM USER_TABLES A
WHERE EXISTS (SELECT 1 FROM USER_TAB_COLUMNS
WHERE TABLE_NAME=A.TABLE_NAME AND COLUMN_NAME = ‘NOME DO CAMPO’
)