如何在不使用工具的情况下单独从数据创建数据库的ER图?

时间:2013-02-15 20:37:21

标签: sql sql-server entity-relationship

我有一个包含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

1 个答案:

答案 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