Hola que tal, les cuento que quiero realizar un trigger de historico, es decir
que cuando el empleado cambie de posicion, dispare sobre la tabla "his_cambio_pos" los datos, es decir que se guarden alli, necesito saber su ayuda, porque nunca arme uno.
empleado
-------------------------------------------------------------------------------------------------------
id_empleado Numeric número de legajo del empleado
fec_alta DateTime fecha de incorporación
fec_baja DateTime fecha de baja del empleado a la empresa
ult_cambio_pos DateTime fecha de cambio de puesto
id_posicion Int codigo identificador del puesto del empleado
salario Numeric salario en pesos del empleado
id_persona Numeric codigo identificador de los datos personales
id_sucursal SmallInt codigo identificador de la sucursal
posicion
-------------------------------------------------------------------------------------------------------
id_posicion Int codigo posicion del empleado
nombre_posicion VarChar (30) mombre de la posicion
id_cargo Int codigo identificador del cargo
id_departamento Int codigo identificador del departamento
status_pos VarChar (15) estado de la posicion
borrado Bit identifica si la posicion fue borrada
his_cambio_pos
-------------------------------------------------------------------------------------------------------
id_empleado Numeric numero de legajo
id_pos_anterior Int posicion de cargo anterior
id_pos_nueva Int posicion de cargo actual
observaciones VarChar (150) observaciones
fecha_cambio DateTime fecha del cambio de cargo
Yo nunca arme un trigger, pero no se si esta bien, estoy trabajando en SQL-Server 2005
CREATE TRIGGER historico-posicion ON empleado
WITH EXECUTE AS CALLER
INSTEAD OF UPDATE
AS
BEGIN
SET NOCOUNT ON; --impide que se generen mensajes de texto con cada instrucción
IF UPDATE(id_posicion) -- Solo si se actualiza el id de la posición
{
BEGIN
INSERT INTO his_cambio_pos
(id_empleado
,id_pos_anterior
,fecha_cambio)
SELECT Id_empleado, id_posicion, getdate()
FROM INSERTED
END
}
END
GO
la tabla empleados, se relaciona a posicion y esta a su vez a his_cambio_pos
desde ya muchas gracias
Ernesto