Announcement

Collapse
No announcement yet.

MS SQL Server und kaskadiertes Löschen/Ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MS SQL Server und kaskadiertes Löschen/Ändern

    Hallo,

    bei der Abbildung von referentiellen Integritäten
    im Interbase Server konnte bei der Erstellung der
    Datenbanken über den Befehl 'ON UPDATE (DELETE) CASCADE'
    die Weitegabe an die Folgedatenbanken vereinbart werden.

    Beim MS SQL Server 7.0 habe ich einen solchen Weg bisher nicht
    realisieren können. Gibt es tatsächlich nur den Weg über den
    programmtechnischen Weg ?

    Viele Grüße
    Volker

  • #2
    Der MS SQL-Server unterstützt das kaskadierte Löschen/Ändern auf SQL-Basis leiter nicht.

    Um denoch kaskadiertes Löschen zu realsieren, mußt Du Trigger schreiben (Fehleranfällig, Aufwendig). Falls es ein größeres Projekt ist, solltest Du dir ERWin ansschauen (Früher von LogikWorks, dann Platinum, mittlerweile Computer Associates). Das kosten jedoch eine Menge. Dort werden für den MS SQL-Server die Trigger automatisch erzeugt (Wenn kaskadiertes Löschen/Ändern) gewünscht)!

    Ein anderes Tool, welche ich vom Namen noch kenne und ähnliches leisten sollen ist VISIO in der Enterprise-Version.

    Ich selber setze ERWin ein und bin zufrieden damit

    Comment


    • #3
      Hallo Bernhard,

      habe ich befürchtet.
      Habe das Problem mittels einer Stored Procedure gelöst,
      die zuerst die untergeordneten Daten durchläuft und
      nach Abschluß aller Arbeiten die Aktionen transmitted.

      Scheint zu funktionieren.

      Vielen Dank
      Volke

      Comment


      • #4
        Hallo zusammen
        Anbei ein Beispiel für einen DELETE-Trigger.
        Vorteil dieser Lösung ist, dass das ganze in einer Transaktion abläuft

        CREATE TRIGGER DelStemp ON dbo.STEMP
        FOR DELETE
        AS
        DELETE BEMERK FROM BEMERK, deleted WHERE BEMERK.STEMPNR=deleted.STEMPNR
        DELETE PNMUT FROM PNMUT, deleted WHERE PNMUT.STEMPNR=deleted.STEMPNR
        G

        Comment

        Working...
        X