2016-06-18 8 views
0

私はこのクエリでSQL Serverの1-1,1-MとM-Nの関係を認識するにはどうすればよいですか?

SELECT 
    RC.CONSTRAINT_NAME FKName, 
    KF.TABLE_SCHEMA FKSchema, 
    KF.TABLE_NAME FKTable, 
    KF.COLUMN_NAME FKColumn, 
    RC.UNIQUE_CONSTRAINT_NAME PKName, 
    KP.TABLE_SCHEMA PKSchema, 
    KP.TABLE_NAME PKTable, 
    KP.COLUMN_NAME PKColumn, 
    RC.MATCH_OPTION MatchOption, 
    RC.UPDATE_RULE UpdateRule, 
    RC.DELETE_RULE DeleteRule 
FROM 
    [INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS] RC 
JOIN 
    [INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] KF ON RC.CONSTRAINT_NAME = KF.CONSTRAINT_NAME 
JOIN 
    [INFORMATION_SCHEMA].[KEY_COLUMN_USAGE] KP ON RC.UNIQUE_CONSTRAINT_NAME = KP.CONSTRAINT_NAME 

のようなクエリがあるなど、それは結果を持っている:私は、各行1-1または1-Mなどで関係のタイプが何であるかを認識したい

FK_Person_Address dbo Person Id PK_Address dbo Address Id SIMPLE NO ACTION NO ACTION --[1-1] or [1-M] or [M-N] I need this! 

関係ステータスを持つ列。

[1-1]または[1-M]または[M-N]これが必要です!

いずれかを教えてください。

EDIT:

私はこの質問をしたのはなぜ? Reverse poco GeneratorEntity Framework Power Tools Beta 4のようなビジュアルスタジオのいくつかのエクステンションは、C#pocosとテーブルを逆転できるので、ナビゲーションプロパティを単一クラスまたはクラスのリストとして生成するためのリレーションシップステータス1-1または1-MまたはMNを知っている必要があります。また、マッピング用にEntityTypeConfigurationを作成しますSQL Serverのテーブルからこれらの情報を取得する方法は?テーブルの関係性を知らないとC#クラスに戻すことはできません!

+0

単一のクエリからリレーションシップのカーディナリティを判断することはできません**テーブル構造**とそのテーブルのリンク方法と関連する列の定義方法を調べる必要があります。 –

+0

はい、これらのツールは、テーブル構造を見て関係のカーディナリティを知っています** ** –

+0

あなたの説明を認識できないサンプルがありますか?どのようにテーブルの構造を見ることができますか?テクニックやクエリは? – Hamed

答えて

-1

1-1の関係の場合:参照されるテーブルに外部キー制約を持つ一意のキーワードがあります。

M-1関係の場合:参照テーブルに外部キー制約を持つ一意のキーワードはありません。

+0

ヒントを使用して現在のクエリを編集できますか? – Hamed

+4

答えはSQLではありません。すべてをカバーする必要はありません。英語のスペル、文法、句読点、および大文字の標準規則に従ってください。 –

関連する問題