desencadenador sql server

Ricardo Mun~oz A. rmunoz en pjud.cl
Mie Nov 10 16:56:37 CLST 2004


El mié, 10-11-2004 a las 16:45, Roberto Ovalle escribió:
> en un inicio la página web de php estaba funcionando sin problemas hace más
> de un año, hoy le ingresé el siguiente trigger para que me actualizara un
> campo de la tabla clientes
> 
> CREATE TRIGGER [GRABA_FECHA_INICIO] ON dbo.CLIENTES
> FOR INSERT
> AS
> 
> DECLARE @codigo int
> 
> DECLARE INSERTED_cursor CURSOR FOR
> SELECT CL_CODIGO, CL_RUTR FROM INSERTED
> 
> OPEN INSERTED_cursor
> 
> FETCH NEXT FROM INSERTED_cursor
> INTO @codigo
> 
> IF @@FETCH_STATUS = 0
> BEGIN
>     UPDATE CLIENTES SET CL_FECHA_INGRESO =
> '20'+substring(cl_fecing,7,2)+substring(cl_fecing,4,2)+substring(cl_fecing,1
> ,2)  WHERE CL_CODIGO = @codigo
> // tuve que poner asi la fecha con substring por que cuando lo hacía con la
> instrucción convert daba vuelta mal la fecha
> END
> 
> CLOSE INSERTED_cursor
> DEALLOCATE  INSERTED_cursor
> 
> 
> Despues de grabar el trigger cualquier grabado en la página php arrojaba
> muchos errores por lo que decidí ahicar el trigger lo que me quedó asi
> 
> CREATE TRIGGER [Fecha_Ingreso] ON [CLIENTES]
> FOR UPDATE
> AS
> 
> UPDATE CLIENTES SET CL_FECHA_INGRESO =
> '20'+substring(cl_fecing,7,2)+substring(cl_fecing,4,2)+substring(cl_fecing,1
> ,2)  WHERE CL_CODIGO IN( SELECT CL_CODIGO FROM INSERTED)
> 
> 
> con este trigger funcionó, no me pregunten por que solo se que los 2 hacen
> lo mismo pero uno es más corto que otro

el primero dice 'FOR INSERT', el segundo 'FOR UPDATE'...

-- 
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)



Más información sobre la lista de distribución PHP