Trigger Delete SQL 7.0 ?

26/05/2004 - 22:43 por Manuel Vera | Informe spam
Quiero hacer un "delete cascade" usando SQL 7 a traves de un trigger. Aqui
el trigger de ejemplo que no me funciona:

CREATE TRIGGER tgMaestroDel ON Maestro
FOR DELETE
AS
print 'trigger delete'
DELETE FROM Detalle
FROM deleted
WHERE Detalle.CarritID = deleted.CarritID
AND Detalle.CodProduct = deleted.CodProduct
AND Detalle.Estats = deleted.Estats
GO

Si borro el registro en Maestro, debe eliminar los hijos en Detalle.
Pero ni siquiera se ejecuta el -print 'trigger delete'-

Los tres campos en el WHERE son la PK de Maestro.

¿Alguien puede decirme que esta mal?
El trigger no se ejecuta y me da error en el delete del registro en Maestro.

Gracias
MV

Preguntas similare

Leer las respuestas

#6 Manuel Vera
27/05/2004 - 18:50 | Informe spam
CHANFLES!
Me iva a podrir aqui probando ese codigo.
Gracias por la información.
Saludos
MV

"Carlos Sacristan" <csacristan ARROBA mvps.org> wrote in message
news:ulHAcO$
Con tu permiso, Maxi...

Manuel, no te va a funcionar ese trigger porque en realidad nunca se
dispara si existe integridad referencial entre la tabla maestro y la
detalle: los trigger saltan después de ejecutada la acción que los lanza,


no
antes. De ahí que te salte el error y se cancele el proceso (no sale el
texto de la instrucción PRINT).

Para que te funcione debes eliminar la restricción primeramente, o


bien
hacerlo a través de un procedimiento almacenado.



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Manuel Vera" escribió en el mensaje
news:#wFeUJ$
> Hola
>
> Hice el cambio en el JOIN de las tablas y sigue sin funcionar.
> ¿Que otra cosa podria ser?
>
> MV
>
> "Maxi" wrote in message
> news:
> > Hola, a ver si esto te funciona? (sin probar)
> >
> > CREATE TRIGGER tgMaestroDel ON Maestro
> > FOR DELETE
> > AS
> >
> > DELETE Detalle
> > FROM deleted inner join detalle on
> > Detalle.CarritID = deleted.CarritID
> > AND Detalle.CodProduct = deleted.CodProduct
> > AND Detalle.Estats = deleted.Estats
> >
> > > > >
> > Suerte
> >
> >
> >
> > Salu2
> > Maxi
> > Buenos Aires - Argentina
> > Desarrollador Microsoft 3 Estrellas .NET
> > Nunca consideres el estudio como una obligación sino como
> > una oportunidad para penetrar en el bello y maravillosos
> > mundo del saber.
> > - Albert Einstein
> >
> >
> >
> > "Manuel Vera" escribió en el mensaje
> > news:
> > > Quiero hacer un "delete cascade" usando SQL 7 a traves de un


trigger.
> Aqui
> > > el trigger de ejemplo que no me funciona:
> > >
> > > CREATE TRIGGER tgMaestroDel ON Maestro
> > > FOR DELETE
> > > AS
> > > print 'trigger delete'
> > > DELETE FROM Detalle
> > > FROM deleted
> > > WHERE Detalle.CarritID = deleted.CarritID
> > > AND Detalle.CodProduct = deleted.CodProduct
> > > AND Detalle.Estats = deleted.Estats
> > > GO
> > >
> > > Si borro el registro en Maestro, debe eliminar los hijos en Detalle.
> > > Pero ni siquiera se ejecuta el -print 'trigger delete'-
> > >
> > > Los tres campos en el WHERE son la PK de Maestro.
> > >
> > > ¿Alguien puede decirme que esta mal?
> > > El trigger no se ejecuta y me da error en el delete del registro en
> > Maestro.
> > >
> > > Gracias
> > > MV
> > >
> > >
> >
> >
> >
> > Outgoing mail is certified Virus Free.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.688 / Virus Database: 449 - Release Date: 18/05/2004
> >
> >
>
>


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