2010-12-22 13 views
0

die Fehlermeldung in SQL Server erhalten 2008 (wenn eine neue FK Einführung):SQL Server: FOREIGN KEY Einschränkung 'FK_T' Einführung auf dem Tisch 'T' können Zyklen oder mehrere kaskadenWege verursachen

FOREIGN Introducing KEY Constraint ‚FK_T‘ auf dem Tisch ‚T‘ können Zyklen verursachen oder mehrere kaskadenPfade

ich verstehe die Theorie, daß ich nicht auf dieselbe Tabelle aus mehreren Pfaden kommen kann. Mein Problem ist, dass meine Datenbankstruktur ziemlich komplex ist, da viele FKs bereits in dieser Tabelle für andere Tabellen und andere Tabellen eingerichtet sind. Gibt es eine Frage, die ich ausführen kann, um mir zu sagen, wo das Problem liegt?

Best I von bisher war zu

for each FK on my table: 
BEGIN TRANSACTION 
    DROP FK 
    ADD MY NEW FK 
    --see if it breaks 
ROLLBACK 

Dann FK analysieren auf dem Tisch denken konnte, die die „ADD NEW FK“ auf die gleiche Weise brach. Es muss einen besseren Weg geben ...

+0

Welche Version von SQL Server? Es gibt einige Systemansichten und gespeicherte Prozeduren, mit denen Sie Abhängigkeiten anzeigen können, die hilfreich sein können. – JNK

+0

SQL Server 2008 (Ich habe es gerade zur Beschreibung hinzugefügt) – Denis

Antwort

1

Im SQL Server Management Studio können Sie mit der rechten Maustaste auf ein beliebiges Objekt klicken und Abhängigkeiten anzeigen auswählen. Dies zeigt Ihnen, was von diesem Objekt abhängt und von welchem ​​Objekt es abhängt.

// bearbeiten SSMS verwendet SMO, also bin ich nicht sicher, ob dies mit reinem SQL getan werden kann, aber wahrscheinlich ist es möglich.