Sql 查找包含两个已知列名的表名称

Sql 查找包含两个已知列名的表名称,sql,sql-server,Sql,Sql Server,我想在一个表中找到同时包含这两列的表。我试过这个: SELECT COLUMN_NAME, TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME in ('CurrencyName', 'CurrencyKey'); 此查询生成包含CurrencyName或CurrencyKey列之一的所有表 但是我想要一个同时包含这两列的表 请提出一些想法 谢谢 你很接近。您希望使用groupby,然后使用having子句验证是否有两个

我想在一个表中找到同时包含这两列的表。我试过这个:

SELECT COLUMN_NAME, TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME in ('CurrencyName', 'CurrencyKey');
此查询生成包含
CurrencyName
CurrencyKey
列之一的所有表

但是我想要一个同时包含这两列的表

请提出一些想法


谢谢

你很接近。您希望使用
groupby
,然后使用
having
子句验证是否有两个匹配项:

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME in ('CurrencyName', 'CurrencyKey')
GROUP BY TABLE_NAME
HAVING COUNT(*) = 2;
注意:为了确保您有正确的表,您应该在查询中也使用
table\u SCHEMA