Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

creacion de trigger en SQL Server

Estas en el tema de creacion de trigger en SQL Server en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/09/2009, 13:19
 
Fecha de Ingreso: septiembre-2009
Mensajes: 1
Antigüedad: 14 años, 7 meses
Puntos: 0
creacion de trigger en SQL Server

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
  #2 (permalink)  
Antiguo 14/09/2009, 17:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: creacion de trigger en SQL Server

¿Ya lo probaste?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:07.