Salida de SQL en Eliminar en cascada
-
30-09-2019 - |
Pregunta
¿Es posible valores de salida de un eliminar en cascada en SQL?
Algo así como:
DELETE [Families]
OUTPUT [deleted].[FamilyID] [deleted].[FamilyName], [Members].[MemberName]
FROM [Families]
LEFT JOIN [Members]
ON [Members].[FamilyID] = [Families].[FamilyID]
Si había dos familias con tres miembros en total, debe ceder algo como:
[FamilyID] [FamilyName] [MemberName]
12 'Family A' 'Member 1'
12 'Family A' 'Member 2'
13 'Family B' 'Member 3'
También es aceptable para una solución para dar 1 fila por familia con los miembros borrado en cascada en una lista delimitada. Algo así como:
[FamilyID] [FamilyName] [MemberNames]
12 'Family A' 'Member 1|Member 2'
13 'Family B' 'Member 3'
Solución
La mejor solución que pudo encontrar los rendimientos de dos conjuntos de resultados:
- Seleccione los ID de las familias a eliminar en una variable de tabla.
- miembros de la familia / salida Eliminar interior se unió en contra de la variable de tabla.
- familias Eliminar / salida del centro de la unió en contra de la variable de tabla.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow