Frage

Ist es möglich, Ausgangswerte von einer in SQL löschen kaskadiert?

So etwas wie:

DELETE [Families]
    OUTPUT [deleted].[FamilyID] [deleted].[FamilyName], [Members].[MemberName]
    FROM [Families]
    LEFT JOIN [Members]
        ON [Members].[FamilyID] = [Families].[FamilyID]

Wenn es zwei Familien mit insgesamt drei Mitgliedern, sollte es so etwas wie ergeben:

[FamilyID]   [FamilyName]   [MemberName]
 12           'Family A'     'Member 1'
 12           'Family A'     'Member 2'
 13           'Family B'     'Member 3'

Es ist auch annehmbar, für eine Lösung, die 1 Zeile Ertrag pro Familie mit den kaskaden gelöschten Elementen in einer Trennzeichen-Liste. So etwas wie:

[FamilyID]   [FamilyName]   [MemberNames]
 12           'Family A'     'Member 1|Member 2'
 13           'Family B'     'Member 3'
War es hilfreich?

Lösung

Die beste Lösung kann ich ergibt zwei Ergebnismengen finden:

  1. Wählen Sie die IDs der Familien in eine Tabelle Variable zu löschen.
  2. Löschen / Ausgabe-Familienmitglieder Innen verbunden gegen den Tabellenvariable.
  3. Löschen / Ausgang Familien Innen verbunden gegen den Tabellenvariable.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top