Eu tenho agora:
SELECT TABLE_SCHEMA ,
TABLE_NAME ,
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'NNN';
Isso me dá várias centenas de linhas, porque várias tabelas contêm campos com esse nome. Eu quero pesquisar algum valor dessas tabelas e colunas usando os dados anteriores na nova consulta como:
SELECT <COLUMN_NAME> FROM <TABLE_SCHEMA>.<TABLE_NAME>
Eu poderia incluir os resultados da primeira consulta nas tags da segunda em uma consulta e como? Eu gostaria de evitar chamar todos os esquemas, tabelas e colunas manualmente para verificar apenas coisas menores em cada tabela.
Fonte:
Peguei a primeira consulta de: https://stackoverflow.com/questions/420741/getting-list-of-tables-and-fields-in-each-in-a-database
A menos que você esteja tentando explicitamente escrever consultas que funcionem em vários mecanismos, recomendo manter as exibições de catálogo no
sys
esquema em vez deINFORMATION_SCHEMA
(consulte this e this ). Você precisará de SQL dinâmico para isso de qualquer maneira, e em outros mecanismos a sintaxe para isso varia muito:Se você quiser que a coluna seja listada como o nome da tabela em vez do nome da coluna:
E se você quiser todos eles em um único conjunto de resultados, você pode adicionar o nome da tabela como uma coluna e usar um
UNION
(e coagir todas as colunas em um tipo compatível, apenas no caso):