SQL Server - Problemas con trigger

   
Vista:

Problemas con trigger

Publicado por igborn (5 intervenciones) el 01/03/2011 16:26:22
Hola,
Tengo este trigger que funciona casi bien.
Cuando inserta datos, no inserta una fila como debería ser, sino, que inserta la misma fila 3 veces y no veo el fallo.
gracias

CREATE trigger [TRG_ZONE] ON [dbo].[trainzone]
FOR INSERT
AS
delete from tsmokeactive
where (procesado=1)
insert tsmokeactive (timedate, location, description)
SELECT tsmoke.timedate, tsmoke.location, trainzone.description
FROM trainzone, tsmoke
where trainzone.location = tsmoke.location AND
tsmoke.description not like '%Cleared%'
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
Imágen de perfil de Isaias

RE:Problemas con trigger

Publicado por Isaias (3186 intervenciones) el 01/03/2011 18:14:24
Los triggers, no son para lo que tu quieres ocuparlos, ¿porque no haces tu insert y delete en el cuerpo del procedimiento que hace el insert en tu tabla trainzone?
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:Problemas con trigger

Publicado por igborn (5 intervenciones) el 01/03/2011 18:38:15
Gracias por la ayuda.

Si los trigger no son para esto, que es lo que debería haber hecho ?
Desde el SQL Query Analizer pongo lo siguiente e inserta una fila sin problemas:

insert tsmokeactive (timedate, location, description)
SELECT tsmoke.timedate, tsmoke.location, trainzone.description
FROM trainzone, tsmoke
where trainzone.location = tsmoke.location AND
tsmoke.description not like '%Cleared%'

Pero el problema esta a la hora de realizar el trigger.
Como puedo poner dentro del cuerpo del procedimiento el insert y el delete ?
La verdad que estoy bastante atascado con esto.

Gracias
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
Imágen de perfil de Isaias

RE:Problemas con trigger

Publicado por Isaias (3186 intervenciones) el 01/03/2011 21:57:52
Debes hacer una codificacion con JOIN para realizar la union de tus tablas y no con un FROM tabalx, tablaz

Por otro lado, desde donde estar insertando tu registro, debes colocar los demas INSERT, porque quererlos meter en un trigger, que ademas de todo, nada tiene que ver con el INSERT que ejecutas en este.
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