2010-10-14 194 views
3

是否可以從SQL中的級聯刪除輸出值?級聯刪除SQL輸出

喜歡的東西:

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

如果有兩戶人家,總三名成員,它應該產生這樣的:

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

這也是可以接受的解決方案,獲得每個家庭1行與級聯刪除的成員在分隔列表中。喜歡的東西:

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

回答

2

最好的解決辦法,我能找到產生兩個結果集:

  1. 選擇家庭的ID刪除到表變量。
  2. 刪除/輸出家庭成員與表變量內聯。
  3. 刪除/輸出與表變量內連接的族。