2010-10-14 59 views
3

Est-il possible de générer des valeurs à partir d'une suppression en cascade dans SQL?Sortie SQL sur la suppression en cascade

Quelque chose comme:

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

S'il y avait deux familles avec trois membres au total, il devrait donner quelque chose comme:

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

Il est également acceptable pour une solution pour obtenir 1 rang par famille avec les membres supprimés en cascade dans une liste délimitée. Quelque chose comme:

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

Répondre

2

La meilleure solution que je pourrais trouver des rendements deux ensembles de résultats:

  1. Sélectionnez les ID des familles à supprimer dans une variable de table.
  2. Suppression/sortie des membres de la famille connectés en interne par rapport à la variable de la table.
  3. Familles de suppression/sortie assemblées en interne par rapport à la variable de table.