求一条查看数据库中那些表包含指定字段的语句
在一个数据库里 有400多张表,我知道一条语句可以查找该数据库中含有指定字段"材料名称")(一个)的表和视图
select * from information_schema.columns where column_name = '材料名称'
但是我想查询这个数据库中含有指定的2个字段的表和视图(例如查看那些表或视图同时有"材料名称"和"材料编码"的字段) 请问有这样的语句能实现吗?
测试过 select * from information_schema.columns where column_name = '材料名称' and column_name='材料编码' 不行 找不到任何数据
[解决办法]
SELECT *
FROM ( SELECT a.name 'TabName' ,
b.name 'ColName'
FROM sys.tables a
INNER JOIN sys.columns b ON a.object_id = b.object_id
WHERE b.name IN ( '材料名称', '材料编码' )
) a
WHERE EXISTS ( SELECT 1
FROM ( SELECT a.name 'TabName' ,
b.name 'ColName'
FROM sys.tables a
INNER JOIN sys.columns b ON a.object_id = b.object_id
WHERE b.name IN ( '材料名称', '材料编码' )
) b
WHERE b.TabName = a.TabName
AND a.ColName <> b.ColName )
ORDER BY a.TabName