是否可以编写查询:
SELECT * from table1, table 2, table 3 ...
其中table1.column
名称与table2.column
名称类似table3.column
名称
我们不知道列的名称,我们说的是table1中的任何列。列名如 table2。列名,如table3。列名
例如:employee id
可能是3个表共有的列,或publisher id
是3个表共有的列。
我可以在我的数据库中找到带有图表的外键或主键,但我想编写一个只显示与列名称具有相同标题的列的查询。
答案 0 :(得分:1)
不知道为什么要这样做,所以有点难以操纵,但数据库中有许多描述数据库的表和视图。
Information_Schema.Columns可能就是您应该从哪里开始的。请注意,这是元数据,如果您希望实际表的内容更进一步,并构建一些动态sql或等效的。
Select Column_Name,Count(*) As NumberOfOccurences From Information_Schema.Columns
将为您提供列名称以及您使用它们的频率。
答案 1 :(得分:1)
如果您知道列名,并且想知道在哪个不同的表中使用了相同的列名,则编写SQL查询为
SELECT schema_name(t。[schema_id])+'。 + t。[名称]作为sys.tables中的表t INNER JOIN sys.columns c on t。[object_id] = c。[object_id] WHERE c。[name] ='Your_Common_Column_Name'
您将获得所有具有相应模式的表列表
答案 2 :(得分:0)
获取列名称:
select sc.name
from sysobjects so inner join syscolumns sc on so.id = sc.id
where so.name = 'tableName'