2013-11-27 102 views
2

我知道这是可以选择包含一个特定的列名与像查询表中的所有表:SQL Server 2008中:找到包含列与指定名称

SELECT t.name, 
     c.name 
FROM sys.tables t 
INNER JOIN sys.columns c 
    ON c.object_id=t.object_id 
WHERE c.name like '%colname%' 

有没有办法找到表其中包含2个或更多的给定列?

举个例子,我想找到的是有具体列的所有表:学生和教师。

回答

6

集团由内容是独一无二的,算上having条款

 
select t.name 
from sys.tables t 
inner join sys.columns c on c.object_id=t.object_id 
where c.name in ('student','teacher') 
group by t.name 
having count(distinct c.name) = 2 
4

例如,在群组内容的,我有一个名为组织数据库。我有多个表,其中tax_id列存在。

大多数时候,我们必须找到从整个数据库这样的列。 该解决方案提供如下:

select table_name,column_name from information_schema.columns 
where column_name like '%tax%' 

有一个在查询数据库名称无论哪个无论你只需要改变愿意列名,将发现需要的结果

搜索任意值像在列,并在表中的值的电脑存在

对于它整个数据库计算机首先我们需要编写一个存储过程,然后我们重用对于我们的搜索,我从http://vyaskn.tripod.com/search_all_columns_in_all_tables.htm得到了非常完美的结果。 执行存储过程后,我们得到所需的结果如下图所示。 图像显示从整个数据库关键字计算机的完整搜索结果。 Image showing complete search result of keyword computer from whole database

相关问题