SQL Ausgabe auf Cascade Delete
-
30-09-2019 - |
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'
Lösung
Die beste Lösung kann ich ergibt zwei Ergebnismengen finden:
- Wählen Sie die IDs der Familien in eine Tabelle Variable zu löschen.
- Löschen / Ausgabe-Familienmitglieder Innen verbunden gegen den Tabellenvariable.
- Löschen / Ausgang Familien Innen verbunden gegen den Tabellenvariable.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow