SQL Server - PROBLEMA CON TRIGGER SQL SERVER 2008 SR2

   
Vista:

PROBLEMA CON TRIGGER SQL SERVER 2008 SR2

Publicado por Coral (3 intervenciones) el 17/01/2013 23:33:34
Hola, tenemos el siguiente trigger que se ejecuta tras actualizar la tabla TL_ticketsCabecera y escribe un archivo V123.txt con el importe del total del ticket (importe) de esa operación, funciona correctamente, solo que por alguna razón, lo hace 3 veces por cada ticket creado, se supone que el programa hace 3 updates en esa tabla y por eso genera los 3 archivos(por supuesto no tenemos acceso al código del programa, por eso solo tengo el recurso de los triggers).
La pregunta es.... como evitar eso y hacer que solo genere un solo archivo por cada ticket generado o que por cada tres UPDATE de la tabla solo se active una vez el trigger?

USE [DATABASE]
GO
/****** Object: Trigger [dbo].[Cash] Script Date: 01/10/2013 17:39:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Cash] ON [dbo].[TL_TicketsCabecera]
AFTER UPDATE
AS
DECLARE @UnidadOperativa VARCHAR(20)
DECLARE @Jornada VARCHAR(8)
DECLARE @Numero VARCHAR(20)
DECLARE @Importe NUMERIC(9,2)
DECLARE @COMMAND VARCHAR(1000)
DECLARE @Caja VARCHAR(20);
BEGIN
SELECT
@UnidadOperativa= TC.UnidadOperativa,
@Jornada= TC.Jornada,
@Numero= TC.Numero,
@Importe = TC.Importe,
@Caja=TC.Caja
FROM
inserted AS TC
LEFT JOIN
[dbo].[TL_TicketsPagos] AS TP
ON
(TC.UnidadOperativa = TP.UnidadOperativa AND TC.Jornada= TP.Jornada AND TC.Numero= TP.Numero)
WHERE
TP.Tipo='MET'
GROUP BY
TC.UnidadOperativa, TC.Jornada, TC.Numero, TC.Importe, TC.Caja

IF (@Importe>0 AND @Caja='CAJA01')
BEGIN

SET @COMMAND='@ECHO ' + CAST(ABS(@Importe) AS VARCHAR(6)) +' >C:\CAS\V123.TXT'
EXEC Xp_CMDSHELL @COMMAND

END
ELSE
BEGIN

END
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

PROBLEMA CON TRIGGER SQL SERVER 2008 SR2

Publicado por Isaias (3180 intervenciones) el 18/01/2013 21:07:51
Coral

Es regla de los foros, solo colocar una vez tu duda.

Ya te di una respuesta.
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