Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

Fehlermeldung, die 1785 tritt auf, wenn Sie eine FOREIGN KEY-Einschränkung erstellen möglicherweise mehrere überlappend Pfade

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 321843
Problembeschreibung
Möglicherweise wird folgende Fehlermeldung angezeigt, wenn Sie eine FOREIGN KEY-Einschränkung erstellen:
Server: Msg 1785, Ebene 16, Status 1, 1 Einführung in FOREIGN KEY-Einschränkung 'Fk_two' in Tabelle "Tabelle2" kann Zyklen oder mehrere überlappend Pfade verursachen. Geben Sie ON DELETE kein ACTION oder ON UPDATE NO ACTION, oder ändern Sie andere FOREIGN KEY-Einschränkungen. Server: Msg 1750, Ebene 16, Status 1, 1 konnte keine Einschränkung erstellt werden. Finden Sie in vorherige Fehlern.
Ursache
Sie erhalten diese Fehlermeldung, da in SQL Server, eine Tabelle mehr als einmal in einer Liste aller kaskadierenden referenziellen Aktionen erscheinen darf, die durch eine DELETE oder UPDATE-Anweisung gestartet werden. Beispielsweise muss die Struktur der kaskadierenden referenziellen Aktionen nur einen Pfad zu einer bestimmten Tabelle in der cascading referenziellen Aktionen Struktur haben.
Abhilfe
Um dieses Problem zu umgehen, erstellen Sie keinen Fremdschlüssel, der mehr als einen Pfad zu einer Tabelle in einer Liste von kaskadierenden referenziellen Aktionen erstellen.

Sie können referenziellen Integrität auf verschiedene Weise erzwingen. Deklarative referenzielle Integrität (DRI) ist die grundlegendste Art und Weise, aber es ist auch die am wenigsten flexible Weise. Wenn Sie mehr Flexibilität benötigen, aber trotzdem ein hohes Maß an Integrität, können Sie stattdessen Trigger verwenden.
Weitere Informationen
Der folgende Beispielcode ist ein Beispiel für ein Versuch der FOREIGN KEY-Erstellung, die die Fehlermeldung generiert:
Use tempdbgocreate table table1 (user_ID integer not null primary key, user_namechar(50) not null)gocreate table table2 (author_ID integer not null primary key, author_namechar(50) not null, lastModifiedBy integer not null, addedby integer notnull)goalter table table2 add constraint fk_one foreign key (lastModifiedby)references table1 (user_ID) on delete cascade on update cascadegoalter table table2 add constraint fk_two foreign key (addedby)references table1(user_ID) on delete no action on update cascadego--this fails with the error because it provides a second cascading path to table2.alter table table2 add constraint fk_two foreign key (addedby)references table1 (user_ID) on delete no action on update no actiongo-- this works.				

Informationsquellen

Weitere Informationen finden finden Sie "Cascading referentielle Integrität-Einschränkungen" in der SQL Server 2000-Onlinedokumentation.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 321843 – Letzte Überarbeitung: 11/02/2007 10:14:14 – Revision: 3.4

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbmt kbbug kbpending kbprb kbprogramming KB321843 KbMtde
Feedback
=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" end ngRepeat: language in languagesListForLargeScreens track by $index -->
España - Español
Paraguay - Español
Venezuela - Español
://c1.microsoft.com/c.gif?DI=4050&did=1&t=">/trans_pixel.aspx">