Trigger

16/04/2004 - 18:06 por Marcelo W. Lopez Cremona | Informe spam
Hola grupo.
Tengo un problema cdo lanzo un trigger (delete) en sql server 7.0 al
parecer primero se ejecuta la instruccion delete y luego el trigger (es esto
correcto),
al tratar de insertar el valor q se elimino en un historico no agrega
nada.
El trigger es el siguiente.

CREATE TRIGGER utr_LogDeleteCuentas
ON cuentas
FOR DELETE
AS
BEGIN
INSERT historicoCuentas (cueNumero, fechaDesde, cueLimiteContado,
cuelimiteCuotas, cueDisponibleContado, cueDisponibleCuotas,
cueMaxCantCuotas, cueContCompras, cueAcumCompras,
cueContAnulaciones, cueAcumAnulaciones)
SELECT d.cueNumero, d.fechaActualizacion, d.CueLimiteContado,
d.CueLimiteCuotas, d.CueDisponibleContado, d.CueDisponibleCuotas,
d.CueMaxCantCuotas, d.cueAcumCompras, d.cueContAnulaciones,
d.cueContAnulaciones, d.cueAcumAnulaciones
FROM deleted d
INNER JOIN cuentas c ON c.cueNumero=d.cueNumero
IF @@ROWCOUNT<1
PRINT 'noooo'
ELSE
PRINT 'OK'
END

Gracias desde ya. ;-)

Marcelo W. López
Tucumán - Argentina
 

Leer las respuestas

#1 Manuel Etcheto
16/04/2004 - 18:30 | Informe spam
Hola
Sin el INNER JOIN, esos registros ya no estás en la tabla
cuentas, y tampoco la necesitarías

Suerte
Manuel

Hola grupo.
Tengo un problema cdo lanzo un trigger (delete) en


sql server 7.0 al
parecer primero se ejecuta la instruccion delete y luego


el trigger (es esto
correcto),
al tratar de insertar el valor q se elimino en un


historico no agrega
nada.
El trigger es el siguiente.

CREATE TRIGGER utr_LogDeleteCuentas
ON cuentas
FOR DELETE
AS
BEGIN
INSERT historicoCuentas (cueNumero, fechaDesde,


cueLimiteContado,
cuelimiteCuotas, cueDisponibleContado,


cueDisponibleCuotas,
cueMaxCantCuotas, cueContCompras, cueAcumCompras,
cueContAnulaciones, cueAcumAnulaciones)
SELECT d.cueNumero, d.fechaActualizacion,


d.CueLimiteContado,
d.CueLimiteCuotas, d.CueDisponibleContado,


d.CueDisponibleCuotas,
d.CueMaxCantCuotas, d.cueAcumCompras,


d.cueContAnulaciones,
d.cueContAnulaciones, d.cueAcumAnulaciones
FROM deleted d
INNER JOIN cuentas c ON c.cueNumero=d.cueNumero
IF @@ROWCOUNT<1
PRINT 'noooo'
ELSE
PRINT 'OK'
END

Gracias desde ya. ;-)

Marcelo W. López
Tucumán - Argentina



.

Preguntas similares