【问题标题】:SQL Output on Cascaded Delete级联删除时的 SQL 输出
【发布时间】:2010-10-14 23:52:51
【问题描述】:

是否可以从 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'

【问题讨论】:

    标签: sql sql-delete cascading-deletes


    【解决方案1】:

    我能找到的最佳解决方案产生两个结果集:

    1. 选择要删除到表变量中的族 ID。
    2. 删除/输出与表变量内部连接的系列成员。
    3. 根据表变量删除/输出内部连接的族。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      相关资源
      最近更新 更多