2016-06-18 11 views
0

Ich habe eine Abfrage wie dieseWie kann ich 1-1-1-M und M-N-Beziehung in SQL Server durch Abfrage erkennen?

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 

und ein Ergebnis haben wie:

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! 

ich erkennen wollen, was in jeder Zeile die Art der Beziehung ist 1-1 oder 1-M als Spalte mit Beziehungsstatus.

[1-1] oder [1-M] oder [M-N] Ich brauche das!

Kann mich jemand führen?

EDIT:

Warum ich diese Frage gestellt? So sehe ich einige Visual Studio-Erweiterungen wie Reverse poco Generator und Entity Framework Power Tools Beta 4 können Tabelle zu C# pocos umkehren, so müssen sie Beziehungen Status 1-1 oder 1-M oder MN für die Generierung der Navigationseigenschaft als einzelne Klasse oder Liste von Klassen kennen und auch EntityTypeConfiguration für die Zuordnung so erstellen Wie erhalten sie diese Informationen von SQL-Server-Tabellen? Wenn wir nichts über Beziehungen von Tabellen wissen, können wir sie nicht in C# -Klasse umkehren!

+0

Sie können * die Kardinalität von Beziehungen nicht aus einer einzigen Abfrage ermitteln. Sie müssen sich die ** Tabellenstruktur ** ansehen und wie die Tabellen verknüpft sind und wie die beteiligten Spalten definiert sind. –

+0

Ja, diese Tools kennen die Kardinalität der Beziehungen ** durch Blick auf die Tabellenstruktur! ** –

+0

Haben Sie eine Probe ich kann Ihre Beschreibung nicht erkennen? Wie kann ich die Tabellenstruktur betrachten? Mit welcher Technik oder Abfrage? – Hamed

Antwort

-1

Für Beziehung 1-1: In der referenzierten Tabelle gibt es ein eindeutiges Schlüsselwort mit Fremdschlüsseleinschränkungen.

Für M-1-Beziehung: In der referenzierten Tabelle gibt es kein eindeutiges Schlüsselwort mit Fremdschlüsseleinschränkungen.

+0

Können Sie meine aktuelle Abfrage mit Ihren Tipps bearbeiten? – Hamed

+4

Ihre Antwort ist nicht SQL; es muss nicht in Großbuchstaben sein. Bitte beachten Sie die Standardregeln der englischen Rechtschreibung, Grammatik, Interpunktion und Großschreibung. –

Verwandte Themen