查找含有若干字段的所有表的sql语句怎么写?

来源:百度知道 编辑:UC知道 时间:2024/07/04 11:43:20
我举个例子吧。我现在要查询同时包含:“OWNER_ID”和“WH_ID”的所有表的sql语句怎么写,如果还要同时包含其他字段呢?
我用的是oracle数据库,“OWNER_ID”和“WH_ID”是两个字段,而且不是系统表中的字段,我要的结果是知道同时包括这两个字段的所有表的表名,你们回答那些表1,表2的都是些废话! 我要是都知道了表1和表2之类的表名了我还查什么呢?
“ HAL9000PLUS ”这位大哥说的最靠谱,但是你说的好像是MS SQL的吧!oracle运行就说找不到表和视图!
希望有人能针对oracle写一个正确的!我可以加分

看你是什么数据库了。

我从前在informix数据库里写过一个,您可以参考,原理相同:
大意是:

select tabname from systables
where
tabid in (select tabid from syscolounms where colname = "OWNER_id")
and tabid in (select tabid from syscolounms where colname = "WH_ID")
and ...(任意多的要求同时存在的字段)

如果只有两个,可以:
select tabid from syscolounms a, syscolounms b
where a.colname = "OWNER_id" and b.colname = 'WH_ID' and a.tabid = b.tabid;

systables, sysculoums是系统表,表示系统中的表和系统中的所有字段,以tabid关联。

oracle里有类似的系统视图可以用,sqlserver不情楚。sqlanywhere里有系统过程序可以用来检索 。

你得查询系统表找~~

请问OWNER_ID”和“WH_ID”是两个字段吗?
如果是这样,恐怕没有办法了。

只能在资源管理器里一个一个找啦

这个简单 不过感觉你没啥诚意不想给你写 而且问题也没说清楚 你是要表里有那几个字段还是表里的一写字段里的内容有那些呢 2种都不是什么难题

--查询包含了列a1,a2的所有的表,如果要增加查询范围,添加in中的条件即可,同时修改having count(*)

select a.[name] 表名 from sysobjects a,
(
select [id],count(*) b from syscolumns where [name] in('a1',&