我有一个数据库,它有很多表。我想从表中找到彼此链接的列名。加入他们。
我只是想知道表之间的列是什么,所以我将知道如何继续并加入它们以获得所需的结果。
有没有办法知道如何找到类似的列名,还是我必须检查每个表?
这适用于SQL Server 2008
答案 0 :(得分:3)
sys.foreign_keys
will contain information关于明确与关键字相关的列。
除此之外,在任何给定的列对之间的架构中没有结构关系。如果单独表上的任何两列假定要连接但在模式中实际上连接,则更多的是模式失败而不是其他任何内容。
没有任何机制可以揭示系统的创建者想要哪些列相关但实际上没有关联。
答案 1 :(得分:0)
如果FK方法没有实现,我个人最喜欢看的是列名。
SELECT c.name AS column_
, t.name AS table_
FROM sys.columns c
INNER JOIN sys.tables t
ON c.object_id = t.object_id
WHERE c.name LIKE '%userID%'
ORDER BY t.name