Обновление триггера в таблице отделов, в котором сотрудник будет активным, если конкретный отдел был деактивирован - PullRequest
0 голосов
/ 29 мая 2018

У меня есть две таблицы:

tblEmployees tblDepartment

Я знаю коды в update, но не знаю, как вставить его в trigger.

Это мои коды к update

UPDATE tblEmployees
SET Employee_Type = 'Active'
FROM tblEmployees AS t1
LEFT JOIN tblDepartment AS t2
ON t1.EmployeeID = t2.EmployeeID
WHERE
t2.Department_Type = 'Inactive' AND t2.DepartmentID = '1101'

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Триггер будет выглядеть так:

CREATE TRIGGER [UpdateEmployeeTrigger] ON tblDepartment AFTER Update
AS 
BEGIN
    UPDATE e
        SET Employee_Type = 'Active'
        FROM inserted i JOIN
             tblEmployees e
             ON i.EmployeeID = e.EmployeeID
        WHERE i.Department_Type = 'Inactive'
END;

Расположение таблицы не имеет смысла.Почему в таблице с именем Department есть столбец с именем EmployeeId?

0 голосов
/ 29 мая 2018

Надеюсь, это поможет вам создать триггер.

CREATE TRIGGER [UpdateEmployeeTrigger]
   ON  tblDepartment
  AFTER Update
AS 
BEGIN

    UPDATE tblEmployees
    SET Employee_Type = 'Active'
    FROM tblEmployees AS t1
    LEFT JOIN tblDepartment AS t2
    ON t1.EmployeeID = t2.EmployeeID
    WHERE t2.Department_Type = 'Inactive'
    AND t2.DepartmentID in (select DepartmentID from inserted)

END

Этот код будет выполняться после каждого обновления таблицы tblDepartment, и последняя строка, т. Е. t2.DepartmentID = inserted.DepartmentID будет проверять только эту обновленную запись.Если для этой же записи установлено значение Inactive, для записи tblEmployee будет установлено значение Active.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...