Zum Inhalt springen

ON UPDATE CASCADE: Schleifen oder mehrere Kaskadenpfade Fehler


Guybrush Threepwood

Empfohlene Beiträge

Ich bekomme in einem Sql Script welches mir auf dem MS SQL Server 2012 eine Datenbank mit vielen Tabellen erzeugen soll mehrere Fehler das durch die Updateweitergabe auf Foreign Keys Schleifen oder mehrere Kaskadenpfade auftreten können.

Allerdings verstehe ich nicht so ganz warum.

Als Beispiel für einen der Fälle


ALTER TABLE [TableA] WITH CHECK ADD CONSTRAINT [TableA_FK00] FOREIGN KEY([SomeID], [SomeOtherID])
REFERENCES [TableB] ([SomeID], [SomeOtherID])
ON UPDATE CASCADE
GO

ALTER TABLE [TableA] WITH CHECK ADD CONSTRAINT [TableA_FK01] FOREIGN KEY([TableCID])
REFERENCES [TableC] ([TableCID])
ON UPDATE CASCADE
GO
[/PHP]

Es gibt also in TableA zwei unterschiedliche FKs auf unterschiedliche Tabellen mit unterschiedlichen Spalten. Mache ich bei einem der beiden Constraints das ON UPDATE CASCADE weg verschwindet auch der Fehler für diese Tabelle.

Die MSDN sagt dazu

The series of cascading referential actions triggered by a single DELETE or UPDATE must form a tree containing no circular references. No table can appear more than once in the list of all cascading referential actions that result from the DELETE or UPDATE. The tree of cascading referential actions must not have more than one path to any given table. Any branch of the tree is terminated when it encounters a table for which NO ACTION has been specified or is the default.

und genau deswegen verstehe ich das nicht. Wird in obigem Beispiel SomeID oder SomeOtherID geändert ist das 2. Constraint nicht davon betroffen. Wird hingegen TableCID geändert dann ist das erste Constraint nicht betroffen.

Warum also der Fehler?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...