SQL - Y Dale con eliminar en Cascada

 
Vista:

Y Dale con eliminar en Cascada

Publicado por Edison Pérez (1 intervención) el 18/05/2001 19:11:24
Hola grupo, he leído casi todos los mensajes de este grupo que hablan sobre eliminar en cascada, he tratado de implementar algunos Triggers y Procedimientos sin ningún resultado positivo. Bueno les pido el favor, si es posible de como lo hago, es decir algo de código, pues estoy que tiro la toalla.
Trabajo con el SQL Server 7.0 y se que el Server 2000 ya permite el borrado en cascada pero por ahora no tengo la posibilidad de conseguirlo.
Bueno el ejemplo sería sencillo (eso creo) una Tabla A(Padre) relacionada con una Tabla B(hijo), poder eliminar un Padre con sus respectivos hijos.

Gracias
Edison Pérez
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Y Dale con eliminar en Cascada

Publicado por isidroalmaguer (1 intervención) el 18/05/2001 21:48:52
hola...

lo que se debe hacer es borrar primero los hijos y al ultimo se borra el padre, asi trabajo yo...

espero te asriva de algo.. o se mas claro en tu duda..

saludos
isidroalmaguer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Y Dale con eliminar en Cascada

Publicado por Gonzalo Solano C. (148 intervenciones) el 18/05/2001 22:17:31
Edison:

Espero que esto te sirva lo probe en SQLServer 2000 y no creo que varie mucho en SQLServer 7.0

CREATE TRIGGER DelCascada
ON A
INSTEAD OF DELETE
AS
DELETE FROM B WHERE B.Codigo = (SELECT Codigo FROM Deleted)
DELETE FROM A WHERE A.Codigo = (SELECT Codigo FROM Deleted)
GO

El detalle de esto es lo siguiente al momento tu de definir tus tablas, especificamente la tabla hijo tu estables una relacion de tipo Reference (Llave Externa o foranea) a una llave Primaria de la tabla padre, es asi como se hace el vinculo.
Ahora cuando existe esta relacion SQL Server no permite borrar por la referencia aun este el trigger, pero debes introducir la opcion
INSTEAD OF DELETE
entonces ejecutara el trigger en vez de borrar es ahi donde tu debes borrar manualmente tanto del hijo primero por la referencia y despues del padre, espero que esto te sirva sino avisame.

Saludos desde BOLIVIA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Y Dale con eliminar en Cascada

Publicado por Patrika (2 intervenciones) el 22/11/2013 06:43:45
con ese codigo ya puedo ejecutar un stored procedure, en el que pueda borrar en cascada ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Y Dale con eliminar en Cascada

Publicado por Patrika (2 intervenciones) el 22/11/2013 07:01:10
D: ah ya lo probe y me funciono bien :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar