无法仅选择来自不同表的具有相同列名的列

时间:2016-06-21 05:10:13

标签: sql sql-server-2008

我有两个名为ab的表。

a包含50列,表b包含75列

这两个表中有相同的列名。如何找到相同的列?

3 个答案:

答案 0 :(得分:6)

您可以查询sys.columns,然后执行INTERSECT查找常用列名称:

SELECT name
FROM sys.columns
WHERE OBJECT_NAME(object_id) = 'a'

INTERSECT 

SELECT name
FROM sys.columns
WHERE OBJECT_NAME(object_id) = 'b'

答案 1 :(得分:4)

请尝试一下它会帮助你

select column_name from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='a'
INTERSECT
select column_name from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='b'

答案 2 :(得分:1)

您还可以查询视图

INFORMATION_SCHEMA.COLUMNS

这样:

SELECT table_name, column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name IN ('your_a_table','your_b_table')
ORDER BY column_name

通过这个,您可以很好地查看两个表之间的所有共同列(以及其他列)。