Buenas todos
Tengo un probleam al ejecutar un SP dentro de un disparador
El ejecutar los SP no me devuelve el valor que espero, si ejecuto el SP
de forma aislada funciona
El codigo del SP es
CREATE PROCEDURE _ESTADISTICA_TIEMPO_REPARACION_TOTAL
@intIdReparacion INTEGER,
@intSegundos INTEGER OUTPUT
AS
SET NOCOUNT ON
set dateformat dmy
SELECT @intSegundosÚTEDIFF(SS,TELEFONOS.FECHAIN,TIEMPOS.FECHAFIN)
FROM TELEFONOS,TIEMPOS
WHERE TELEFONOS.INDICE=TIEMPOS.JOBNUMBER
AND CONTADOR=1 AND JOBNUMBER=@intIdReparacion
El codigo del disparador
ALTER TRIGGER tu_TIEMPOS_TREPARACION ON TIEMPOS FOR UPDATE
AS
SET NOCOUNT ON
DECLARE @intNumCols INTEGER
DECLARE @intSegCal INTEGER
DECLARE @intSegTol INTEGER
DECLARE @intIdRep INTEGER
DECLARE @strMens VARCHAR(100)
SET @intSegCal=0
SET @intSegTol=0
SELECT @intNumCols=@@ROWCOUNT
IF @intNumCols=0
RETURN
IF UPDATE(FECHAFIN)
BEGIN
SET @strMens='tu_TIEMPOS_TREPARACION =>
@intNumCols->'+CONVERT(CHAR,@intNumCols)
EXEC master..xp_logevent 60000, @strMens, WARNING
IF (@intNumCols>1)
BEGIN
RAISERROR ('Actualización erronea',16,1) WITH log
ROLLBACK TRANSACTION
RETURN
END
SELECT TOP 1 @intIdRep=INSERTED.JOBNUMBER FROM INSERTED
SET @strMens='tu_TIEMPOS_TREPARACION =>
@intIdRep->'+CONVERT(CHAR,@intIdRep)
EXEC master..xp_logevent 60001,@strMens, WARNING
EXEC _ESTADISTICA_TIEMPO_REPARACION_TOTAL
@intIdRep,@intSegTol OUTPUT
SET @strMens='tu_TIEMPOS_TREPARACION =>
@intSegTol->'+CONVERT(CHAR,@intSegTol)
EXEC master..xp_logevent 60002,@strMens, WARNING
UPDATE TELEFONOS
SET SEGUNDOSREPCAL=@intSegCal,SEGUNDOSREPTOTAL=@intSegTol
WHERE INDICE=@intIdRep
END
RETURN
¿Me podeis ayudar?
=Emilio Garcia Loeda
Blog: www.loeda.net
FTP : ftp.loeda.net
"La verdad os hara libres"
==
Leer las respuestas