1

35 個のテーブルを含む SQL データベースがあり、テーブル間の関係をマッピングする ER ダイアグラムを作成する必要があります。各テーブルには識別キー値 (hmy) があります。別のテーブルを指すキーを持つテーブルを探しています。たとえば、あるテーブルに hinspection というキーがあり、これに関連する inspects というテーブルがあるとします。次に、結合ステートメントを実行します。

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

次に、1 つのテーブルの各インスタンスのいくつが他のテーブルの各インスタンスのいくつにマップされるかを確認できます (例: hinspection hmy レコードのインスタンスごとに 3 つの異なる othertable hmy レコードがあります)。これは、1 対多または 1 対 1 の関係を作成するのに役立ちますが、この方法では判断できない関係があることもわかっています。ツールを使用せずに関係を把握するために、他にどのような方法を使用できますか。

編集: 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 に答える