Hallo löschen Ich habe eine einfache Tabelle A und B,MSSQL Cascade Zwei Spalten mit FK einer Tabelle
Table A
int Id NOT NULL
Table B
int Id NOT NULL
int A1 NULL (FK to Table A.Id)
int A2 NULL (FK to Table A.Id)
Was Ich mag würde tun Datensatz aus Tabelle B zu löschen, wenn die Aufzeichnung bezogen (auf A1, A2 oder beide) wurde gelöscht.
Ich habe auf A1 Beziehung auf DELETE Aktion Cascade erstellt und es funktioniert perfekt, aber wenn ich versuche, auf A2 Beziehung auf DELETE Aktion Cascade einzurichten Ich habe:
‚A‘ Tabelle gespeichert erfolgreich 'B' Tabelle - Die Beziehung 'FK_B_A2' konnte nicht erstellt werden. Das Einführen der FOREIGN KEY-Einschränkung 'FK_B_A2' in Tabelle 'B' kann zu Zyklen oder mehreren Kaskaden Pfaden führen. Geben Sie ON DELETE NO ACTION oder ON UPDATE NO ACTION an, oder ändern Sie andere FOREIGN KEY-Einschränkungen. Constraint oder Index konnte nicht erstellt werden. Siehe vorherige Fehler.
Ich verstehe nicht, warum das nicht eingerichtet werden kann? Ich möchte einfach SQL MERGE in Tabelle A verwenden können (und wenn etwas gelöscht wird, möchte ich verwandte Datensätze in Tabelle B löschen oder die Zusammenführung schlägt fehl).
Was Beziehung zwischen Tabellen? Tabelle B 'A1' und 'A2' Spalten sind mit Tabelle A' Id' Spalte verwandt? –
Ja, ich werde meine Post aktualisieren, Spalten A1 und A2 hat FK zu Tabelle A – Teamol