Trigger

05/01/2006 - 00:26 por Wilfredo Chacon | Informe spam
Como hago para crear un trigger que me elimine en cascada registros
relacionados..

Preguntas similare

Leer las respuestas

#1 qwalgrande
05/01/2006 - 18:35 | Informe spam
Hola.

Yo no usaría un trigger para eso, creo que es más práctico y fácil de
administrar que se realice el borrado de dos tablas o las que sean en una
transacción. Es decir, si lo que quieres es que al borrar un pedido se
borren sus líneas (por ejemplo), lo que haría sería primero borrar las
líneas y luego el pedido, sin usar triggers.

Si aún así lo quieres hacer como dices "en cascada", tienes la posibilidad
de crear la relación FK de esa forma, para que se eliminen los registros en
cascada (esta opción tampoco me agrada mucho). Mira en los BOL "Cascading
Referential Integrity Constraints".

Y si no te he convencido y quieres utilizar un trigger, debes usar uno
"instead of delete" que te borre los registros de la tabla relacionada y
luego los de tu tabla buena.
create trigger NUNCA_CREO_TRIGGERS on Pedidos instead of delete as

delete L
from LineasPedido L inner join Deleted D on L.IdPedido = D.IdPedido

delete P
from Pedidos P inner join Deleted D on P.IdPedido = D.IdPedido
-

Como ves, esto mismo lo haces desde tu aplicación, como paso previo borrar
las líneas, o en un procedimiento almacenado ambas cosas y tendrás la
situación mucho más controlada.

Alberto López Grande (qwalgrande)
"Wilfredo Chacon" escribió en el mensaje
news:%23CjS%
Como hago para crear un trigger que me elimine en cascada registros
relacionados..


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida