1

我有一个包含 35 个表的 sql 数据库,我必须创建一个映射表之间关系的 ER 图。每个表都有一个标识键值 (hmy)。我一直在寻找具有指向另一个表的键的表。例如,一个表可能有一个名为 hinspection 的键,然后有一个名为 Inspections 的表与之相关。然后我执行一个连接语句:

select hinspection.hmy, hothertable.hinspection, hothertable.hmy from hinspection
inner join hothertable on hinspection.hmy=hothertable.hinspection

然后可以看到一个表的每个实例有多少映射到另一个表的每个实例有多少(例如:hinspection hmy 记录的每个实例都有三个不同的 othertable hmy 记录)。这有助于我创建一些一对多或一对一的关系,但我知道有些关系无法以这种方式确定。在不使用工具的情况下,我还可以使用哪些其他方法来找出关系。

编辑:我正在使用 microsoft sql server management studio 2008

4

1 回答 1

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
于 2013-02-16T01:34:24.393 回答