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!
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. –
Ja, diese Tools kennen die Kardinalität der Beziehungen ** durch Blick auf die Tabellenstruktur! ** –
Haben Sie eine Probe ich kann Ihre Beschreibung nicht erkennen? Wie kann ich die Tabellenstruktur betrachten? Mit welcher Technik oder Abfrage? – Hamed