SQL Server - Trigger SQL con JOIN

   
Vista:

Trigger SQL con JOIN

Publicado por Luis (5 intervenciones) el 13/02/2011 16:26:26
Hola,
Tengo problemas con este trigger, lo que quiero que haga es meter todos los datos en las misma linea.
El primer insert lo realiza perfecto, pero el segundo insert (insert into tsmoke ([zona]), lo inserta en otra linea con el resto de valores en NULL.
Necesitaría rehacer el trigger para que inserte todos los campos en la misma linea.
GRACIAS

CREATE TRIGGER [TRG_TSMOKE_1] ON [dbo].[logs]
FOR INSERT
AS
DELETE FROM tsmoke
WHERE (procesado = 1 )
Insert INTO tsmoke ([timedate], [location], [description])
select inserted.[Date / Time], SUBSTRING(inserted.[Location],4,3), LEFT(inserted.[Description],100)
from inserted
where inserted.[Typ]LIKE'VEH' AND
inserted.[Location]LIKE'TRN3%' AND
inserted.[Act]LIKE'1' AND
inserted.[Ack]LIKE'0' AND
inserted.[Description]LIKE'%Smoke%'
order by inserted.[Date / Time]
insert into tsmoke ([zona])
select trainzone.description
from tsmoke
inner join trainzone
ON tsmoke.location = trainzone.location
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:Trigger SQL con JOIN

Publicado por Isaias (3180 intervenciones) el 15/02/2011 02:13:55
Creo que estas haciendo un mal uso de los triggers, que fueron creados en un inicio para cuidar el DRI.

Es claro que el segundo INSERT no lo realizara con datos, ya que la TRANSACCION no ha concluido.

Todo lo que estas colocando en tu trigger, debe ir en tu STORE PROCEDURE donde realizas el INSERT a [dbo].[logs]
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:Trigger SQL con JOIN

Publicado por Juan Manuel Cruz (59 intervenciones) el 15/02/2011 12:10:48
Buena respuesta, Isaías, se trata de un clásico error de recursividad dentro de un trigger.
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