是否可以从 SQL 中的级联删除中输出值?
类似于:
DELETE [Families]
OUTPUT [deleted].[FamilyID] [deleted].[FamilyName], [Members].[MemberName]
FROM [Families]
LEFT JOIN [Members]
ON [Members].[FamilyID] = [Families].[FamilyID]
如果有两个家庭,总共有 3 名成员,则结果应如下所示:
[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'
最佳答案
我能找到的最佳解决方案会产生两个结果集:
- 选择要删除到表变量中的族 ID。
- 删除/输出与表变量内连接的族成员。
- 删除/输出与表变量内连接的族。
关于级联删除的 SQL 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938459/