2010-10-14 139 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. 删除/输出与表变量内连接的族。