我已经获得了一个创建多个触发器的项目。这是系列中的最后一个。 “创建一个触发器,确保EMPLOYEE表中的作业代码是作业表中的有效作业代码。”清楚地引用两个表。
我可以使用以下简单代码来完成吗?可以同时使用两个表来触发表吗?
CREATE TRIGGER valJobCode
ON EMPLOYEE
AFTER INSERT,UPDATE,DELETE
AS
BEGIN
ALTER TABLE EMPLOYEE
ADD CHECK(SELECT EMPLOYEE.JOB_CODE, JOB.JOB_CODE
FROM EMPLOYEE INNER JOIN JOB ON
EMPLOYEE.JOB_CODE=JOB.JOB_CODE
WHERE (EMPLOYEE.JOB_CODE >=500 AND EMPLOYEE.JOB_CODE <= 510)
END
答案 0 :(得分:0)
更改表以在触发器中添加检查没有意义。这意味着在每个Insert,Update或Delete事务中,您将尝试更改添加相同检查的表。
如果必须使用触发器,则删除ALTER TABLE
和ADD CHECK
指令,如果SELECT条件为真,则返回ROLLBACK TRANSACTION
。虽然您不需要触发器来完成employee.job_code列上的FOREIGN KEY
约束。