SQL如何在一个数据库中查询已知列名的所在表

作者&投稿:徵晓 (若有异议请与网页底部的电邮联系)
SQL SERVER 已知某个字符串在数据库aa里,不知道表名、列名,怎样找到存在该字符串所在的表~

直接的函数及套嵌的SQL应该是没有办法实现,
不过,系统表里有保存数据库所以表表名、及表的列名 的相关表格,可以用存储过程,按表名、和列名一个一个试着匹配,不过如果表多,这个效率可能会比较低

当然,如果你的'xtccar.cn'字符串,是在连接此数据库的程序里显示出来的,有个比较简单的办法,就是用SQL 的 事件探查器 跟踪 SQL的语句,查看 读取的列名

同库操作select a.列名1,b.列名2,a.列名3 from 表名1 as ajoin 表名2 as bon a.关联字段=b.关联字段
不同库操作select a.列名1,b.列名2,a.列名3 from 库名1.dbo.表名1 as ajoin 库名2.dbo.表名2 as bon a.关联字段=b.关联字段
2张表以上的多表连接:先两张连接再与第三张连接,依次下去,如select a.列名1,b.列名2,a.列名3 from 表名1 as ajoin 表名2 as bon a.关联字段=b.关联字段join 表名3 as con a.关联字段=c.关联字段

OBJECT_ID : 返回数据库对象标识号
例如:
use master
Select Object_Id(N'pubs..authors') //查看pubs数据库里的authors表的object_id对象标识号。

OBJECTPROPERTY : 返回当前数据库中对象的有关信息
语法 : OBJECTPROPERTY ( id , property )

例如:
OBJECTPROPERTY (object_id(N'authors') , N'ISTABLE') = 1

select * from dbo.sysobjects where Object_Id(N'myTable') AND OBJECTPROPERTY(id, N'IsTable') = 1
OBJECT_ID:返回数据库对象标识号。N是显式的将非unicode字符转成unicode字符,它来自 SQL-92 标准中的 National(Unicode)数据类型,用于扩展和标准化,在这里可以不用,写作object_id(PerPersonData)。

OBJECTPROPERTY:返回当前数据库中对象的有关信息。1表“真”。同样可以写成OBJECTPROPERTY(id, sUserTable) = 1。

整条语句的意思是判断数据库里有没有存在PerPersonData这样一张表。

整条语句可以简写成:
if exists (select * from sysobjects where objectproperty(object_id('PerPersonData'),'istable') = 1)

判断myTalbe对象是否是一个表。
If exists (select * from dbo.sysObjects
where id = Object_Id(N'myTable') and ObjectProperty(id, N'IsUserTable') = 1)

判断myProc对象是否是一个存储过程。
If exists (select * from dbo.sysObjects
where id = Object_Id(N'myProc') and ObjectProperty(id, N'IsProcedure') = 1)

判断myFun对象是否是一个自定义、标量值函数。
If exists (select * from dbo.sysObjects
where id = Object_Id(N'myFun') and ObjectProperty(id, N'IsScalarFunction') = 1)

判断myFun对象是否是一个表值函数。
If exists (select * from dbo.sysObjects
where id = Object_Id(N'myFun') and ObjectProperty(id, N'IsTableFunction') = 1)

其他更多ObjectProperty属性的 property 值参考
http://technet.microsoft.com/zh-cn/library/ms176105.aspx

select table_name from all_tab_columns
where user = '你的用户' and column_name = ‘NAME列名’;

与列信息有关的3个数据字典user_tab_columns(当前用户所拥有的表列 ),all_tab_columns(可访问的表列),dba_tab_columns(所有表列)

ORACLE~~支持

select tab.name
from syscolumns as col
inner join sysobjects as tab on col.id=tab.id
where col.name='Item_IDX'

在管理平台中打开指定的服务器和数据库,展开表,并右击要查看的表格。然后从弹出的快捷菜单中选择“属性”选项,会出现“表属性”对话框,常规页框会显示该表格的定义。

数据库系统表中可以查到。SQLServer 和 Oracle 不一样,不知你问的是哪种数据库。

如何用select语句在SQL数据库中查询符合指定条件的记录?
答:描述:sql server 数据库中使用条件查询就可以实现符合查询条件的数据记录显示出来。查询语法为:select * from 表名 where 字段名=条件(语法说明:select后面的*号代表的是所有字段显示出来。条件出的条件如果为字符型条件需要使用单引号引起来,如果是int类型不用引号),以下以某数据中的一张数据表user...

如何sqlserver2005从整个库中查找某个值?
答:以下为在SQL Server中查看某个表的字段信息的查询语句(以数据库Pubs的jobs表为例)SELECT SysObjects.Name as TableName,SysColumns.Name as ColumnsName,SysTypes.Name as DateType,SysColumns.Length as DateLength,SysProperties.Value as Remark --列描述 FROM SysObjects,SysTypes,SysColumns LE...

sql数据库中如何查询(sql怎么查询)
答:在你本地的管理工具中,有查询分析器,用它连接远程数据库,然后编写建表语句执行即可!如下:CREATE TABLE [dbo].[表名]([ID][int]IDENTITY(1,1)NOT NULL,[Type][smallint]NOT NULL CONSTRAINT [PK_表名]PRIMARY KEY CLUSTERED ([ID]ASC )ON [PRIMARY])ON [PRIMARY]

如何使用SQL语言对数据库中的数据进行查询?
答:select * from 表名;(*表示查询某张表所有的信息)

请问怎么用sql语句查找整个数据库里的某个数据
答:create table test(id int,name varchar(10))insert into test values (1,'张三')insert into test values (2,'李四')insert into test values (3,'张三')insert into test values (4,'王五')insert into test values (5,'赵六')其中name是张三的有两行,也就是重复行。2、执行sql语句...

使用SQL命令在数据库中查找指定的值
答:SQL没有from all这样的写法的,要的话只能写:DECLARE c_cursor CURSOR FOR (select a.name From sysobjects a inner join syscolumns b on (a.id=b.id)where a.xtype='U' and b.name=‘产品编号')---通过字段名查询表名 DECLARE @tablename varchar(100)declare @sql varchar(max)OPEN ...

SQL如何查询一个数据库中的表
答:你要把你的过程及语句,贴出来嘛,或者说明没有改动,完全按照我的,那你也得把你的SQL语句贴出来吧?然后,你说:报错如下,我是新手 麻烦大家了:(所影响的行数为 0 行)服务器: 消息 105,级别 15,状态 1,行 1 字符串 '张' 之前有未闭合的引号。服务器: 消息 170,级别 15,状态 1...

SQL语句怎样进行数据库字段的条件查询?
答:SQL语句怎样进行数据库字段的条件查询? 我不懂编程,想学习。我要从数据库中读取数据条件是:各频道的最新添加文章,以及所属频道。注意:不是读取整个数据库最新数据,而是分别读取各频道。请问查询语句该怎样写?... 我不懂编程,想学习。我要从数据库中读取数据条件是:各频道的最新添加文章,以及所属频道。注意:不是...

sql查询数据库中有某个值的所有表
答:1、首先在电脑中打开Microsoft SQL Server,查询所有数据库。2、查询当前数据库中所有表名。说明:xtype='U':表示所有用户表,xtype='S':表示所有系统表。3、查询指定表中的所有字段名。4、然后查询指定表中,所有字段名和字段类型。5、接着获取主键字段,获取数据库所有类型,就完成了。

SQL如何查询一个数据库中的表
答:sysobjects,syscolumns这两个表能够找到你构建表的信息,就是我们构建表时保存的信息都在里面。select from sysobjects sb ,syscolumns sc where sb.id= sc.id and sb.name='张三'and sc.name='name'