Delete en cascada SQL Server 2005

29/11/2006 - 14:33 por Paul | Informe spam
Hola,
Estoy usando SQL Server 2005, y tengo una tengo el siguiente problema:

Tabla Pieza( Id, Nombre,)
Tabla Composición, que indica que una pieza esta compuesta por otras
piezas:
Composicion(Id, IdPiezaPadre, idPiezaHija)

Si hago una relación entre "Pieza.Id" y "Composición.IdPiezaPadre" y
marca actualizar y eliminar en cascada, todo va correctamente, pero si
ahora pongo una segunda relación entre "Pieza.Id" y
"Composición.IdPiezaHija" y marca actualizar y eliminar en cascada,
resulata que me da un error de bucle.

Yo quiero que cuando elimine una pieza de la tabla Piezas se eliminaran
los registros de la tabla composición que tuvieran en el campo
IdPiezaPadre, idPiezaHija igual al id de la tabla piezas.

Como hacerlo? Creo que es muy simple, no se pq no me deja hacerla

Gracias
 

Leer las respuestas

#1 Maxi
29/11/2006 - 17:18 | Informe spam
Hola es logico ese error piensa que como tienes 2 fk sobre el mismo registro
no seria logico borrarlo de una quizas, yo te recomiendo que esta logica del
DRI lo hagas via Triggers en este caso puntual


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"Paul" escribió en el mensaje
news:
Hola,
Estoy usando SQL Server 2005, y tengo una tengo el siguiente problema:

Tabla Pieza( Id, Nombre,)
Tabla Composición, que indica que una pieza esta compuesta por otras
piezas:
Composicion(Id, IdPiezaPadre, idPiezaHija)

Si hago una relación entre "Pieza.Id" y "Composición.IdPiezaPadre" y
marca actualizar y eliminar en cascada, todo va correctamente, pero si
ahora pongo una segunda relación entre "Pieza.Id" y
"Composición.IdPiezaHija" y marca actualizar y eliminar en cascada,
resulata que me da un error de bucle.

Yo quiero que cuando elimine una pieza de la tabla Piezas se eliminaran
los registros de la tabla composición que tuvieran en el campo
IdPiezaPadre, idPiezaHija igual al id de la tabla piezas.

Como hacerlo? Creo que es muy simple, no se pq no me deja hacerla

Gracias

Preguntas similares