我有一个包含35个表的sql数据库,我必须创建一个映射表之间关系的ER图。每个表都有一个识别键值(hmy)。我一直在寻找具有指向另一个表的键的表。例如,一个表可能有一个名为hinspection的键,然后有一个名为inspect的表,这与之相关。然后我执行一个join语句:
select hinspection.hmy, hothertable.hinspection, hothertable.hmy from hinspection
inner join hothertable on hinspection.hmy=hothertable.hinspection
然后可以看到一个表的每个实例有多少映射到另一个表的每个实例的多少(例如:对于hinspection hmy记录的每个实例,有三个不同的其他可用的hmy记录)。这有助于我创建一对一或多对一关系,但我知道有些关系无法以这种方式确定。我还可以使用其他方法找出不使用工具的关系。
编辑:我正在使用microsoft sql server management studio 2008
答案 0 :(得分:1)
此查询将为您提供SQL Server 2008数据库中的外键列表。此查询需要您的数据库VIEW DEFINITION
权限。
SELECT
OBJECT_NAME(referenced_object_id) AS Parent_Table
,OBJECT_NAME(parent_object_id) AS Child_Table
,COL_NAME(referenced_object_id,referenced_column_id) AS Parent_Column
,COL_NAME(parent_object_id,parent_column_id) AS Child_Column
,OBJECT_NAME(constraint_object_id) AS FK_Name
FROM sys.foreign_key_columns
ORDER BY Parent_Table, Child_Table