0

是否可以编写查询:

SELECT * from table1, table 2, table 3 ... 

table1.column名字和名字table2.column一样的地方table3.column

我们不知道我们列的名称,我们说我们在 table1 中的任何列。列名,如table2。 像 table3.column 名称中的列名

例如:employee idmaybe是3个表共有的列,或者publisher id是3个表共有的列。

我可以在我的数据库中找到带有图表的外键或主键,但我想编写一个查询,只显示与列名具有相同标题的列。

4

3 回答 3

1

不知道为什么要这样做,所以有点难以驾驭,但是数据库中有许多表和视图来描述数据库。

Information_Schema.Columns 可能是您应该开始的地方。请注意,这是元数据,如果您想要实际表的内容,则必须更进一步,并构建一些动态 sql 或等效的。

Select Column_Name,Count(*) As NumberOfOccurences From Information_Schema.Columns 例如,将为您提供列名以及您使用它们的频率。

于 2013-01-01T19:42:21.303 回答
1

如果您知道列名并且想知道在哪个不同的表中使用了相同的列名,那么将 SQL 查询编写为

选择 schema_name(t.[schema_id]) + '.' + t.[name] AS Tables FROM sys.tables t INNER JOIN sys.columns c on t.[object_id] = c.[object_id] WHERE c.[name] = 'Your_Common_Column_Name'

您将获得所有表格列表及其各自的架构

于 2020-02-14T12:00:38.397 回答
0

获取列名:

select sc.name
from sysobjects so inner join syscolumns sc on so.id = sc.id
where so.name = 'tableName'
于 2013-01-01T19:40:07.757 回答