sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server 2008:ayuda para escribir un disparador INSERT simple

Quiere aprovechar las insertadas tabla lógica que está disponible en el contexto de un activador. Coincide con el esquema de la tabla en la que se está insertando e incluye la(s) fila(s) que se insertarán (en un activador de actualización, tiene acceso a la tabla insertada y eliminado tablas lógicas que representan los datos nuevos y originales respectivamente).

Entonces, para insertar pares de Empleado/Departamento que no existen actualmente, puede intentar algo como lo siguiente.

CREATE TRIGGER trig_Update_Employee
ON [EmployeeResult]
FOR INSERT
AS
Begin
    Insert into Employee (Name, Department) 
    Select Distinct i.Name, i.Department 
    from Inserted i
    Left Join Employee e
    on i.Name = e.Name and i.Department = e.Department
    where e.Name is null
End