sql语言查询语句

我有个数据库,虽然没有表结构,但是表很多,里面的字段也很多,一个一个查询根本不现实。但是我需要列出里面所有特定的值的表和字段的名称请问有什么方法可以实现? 有朋友告诉我用select做2层的嵌套查询出来,但是我不会写啊,有谁能帮帮我啊
我的数据库是sql server

不知道你是什么数据库系统,一般的数据都有把数据库导出为文本(SQL+TXT)的工具,比如MYSQL的是MYSQLDUMP,INFORMIX的DBEXPORT,这些工具可以把数据库的所有表的结构导出为一个SQL文件,把所有数据导出为文本文件,到出之后你可以在整个文件夹下搜索特定字符。

偏要使用SQL语句查询的话,这些语句可以这样的模式:
SELECT '表1.字段1', 表1.字段1 FROM 表1 WHERE 字段1='特定值';
.....有多少个字段就写多少个语句....
上面的SQL脚本运行的结果肯定能满足你的要求,但是手工去写这样的脚本是不现实的。

可以写个SQL语句自动生成这样的SQL脚本,但是这得看你用的什么样的数据库系统,这个系统里面应该有一个系统表,保存有所有表、所有字段的名称和类型等信息,我们只需要提取里面的表名和字段名既可生成上面的脚本:
在INFORMIX数据库中的语法如下:
SELECT "select '"||tabname||"."||colname||"', "||tabname||"."||colname||" from "||tabname||" where "||colname||"='特定值'"
FROM syscolumns
inner join systables on syscolumns.tabid=systables.tabid
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-11
SELECT * FROM sysobjects
返回所有的表以及视图、存储过程等
SELECT * FROM syscolumns
返回所有的列名

你试试
查看所有表名:select name from sysobjects where type='U'
查询表的所有字段名:Select name from syscolumns Where ID=OBJECT_ID('表名')
第2个回答  2009-02-11
主要还是还是要看你的数据库是什么,比如说如果是oralce,你就可以使用一条sql语句达到你的目的
select * from cols
相似回答