从列名确定表名[重复]

Posted

技术标签:

【中文标题】从列名确定表名[重复]【英文标题】:Determing table name from Column names [duplicate] 【发布时间】:2014-09-17 14:28:51 【问题描述】:

假设如果我知道列名,我如何确定哪些表具有这些列名?在我的数据库中,我有很多表,但我不确定哪些表包含这些列名。实际上不可能打开数据库中的所有表?请帮忙。 我知道某些表的键列值,但我不知道与我的 id 对应的那些值到底在哪里定义。例如。我知道地址键、装运键等,但不知道在哪个表中可以找到这些值。 ? 如果我有地址键 1,我应该能够找到对应于 1 的地址。在 sql server 中有没有办法找到这个?

【问题讨论】:

【参考方案1】:

查找具有特定列名的表相对简单:

SELECT t.name FROM sys.columns c 
JOIN sys.tables t ON c.object_id = t.object_id 
WHERE c.name = 'NAME'
ORDER BY t.name

但这并不能确定哪个表具有哪个 ID 值。您必须单独查询返回的表。

【讨论】:

【参考方案2】:

您可以执行以下操作

 select TABLE_NAME,COLUMN_NAME 
 from INFORMATION_SCHEMA.COLUMNS
 where COLUMN_NAME = 'YourColumnNameHere'

这将返回使用您的列的所有表(和视图)。

【讨论】:

以上是关于从列名确定表名[重复]的主要内容,如果未能解决你的问题,请参考以下文章

sql2008中数据重复

从 Microsoft SQL Server 搜索链接服务器 (Oracle) 中的列名 [重复]

sql语句如何去掉一段特别长的文字最后一个字符?

Mysql-DQL

sql语句查询表中重复字段以及显示字段重复条数

查询重复列