我现在有了:
SELECT TABLE_SCHEMA ,
TABLE_NAME ,
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'NNN';
这给了我几百行,因为有几个表包含具有该名称的字段。我想通过在新查询中使用以前的数据来从这些表和列中搜索一些值,例如:
SELECT <COLUMN_NAME> FROM <TABLE_SCHEMA>.<TABLE_NAME>
我可以将第一个查询的结果包含在第二个查询中的标签中吗?如何?我想避免手动调用每个模式、表和列来检查每个表中的次要内容。
资源:
我从以下位置获取了第一个查询: https ://stackoverflow.com/questions/420741/getting-list-of-tables-and-fields-in-each-in-a-database
除非您明确尝试编写在多个引擎中工作的查询,否则我建议坚持使用
sys
架构中的目录视图,而不是INFORMATION_SCHEMA
(参见this和this)。无论如何,你都需要动态 SQL,在其他引擎中,语法会有很大差异:如果您希望将列列为表的名称而不是列的名称:
如果你想把它们全部放在一个结果集中,你可以将表名添加为一个列,并使用
UNION
(并将所有列强制转换为兼容类型,以防万一):