·ÖÎöһϴ˶γÌÐòÖ´ÐÐʱ¿ÉÄܳöÏÖÄļ¸ÖÖÇé¿ö¡£ ¡¾Ë¼¿¼ÓëÁ·Ï°¡¿
±àдÈçÏÂT-SQL³ÌÐò£º
(1) ×Ô¶¨Òå1¸öÊý¾ÝÀàÐÍ£¬ÓÃÓÚÃèÊöYGGLÊý¾Ý¿âÖеÄDepartmentlD×ֶΣ¬È»ºó±àд´úÂë
ÖØÐ¶¨ÒåÊý¾Ý¿â¸÷±í¡£
(2) ±àд¶ÔYGGL¸÷±í½øÐвåÈë¡¢Ð޸ġ¢É¾³ý²Ù×÷µÄ´æ´¢¹ý³Ì£¬È»ºó£¬±àдl¶Î³ÌÐòµ÷ÓÃ
ÕâЩ´æ´¢¹ý³Ì¡£
(3)¶ÔÓÚYGGLÊý¾Ý¿â£¬±íEmployeesµÄEmployeelDÁÐÓë±íSalaryµÄEmployeelDÁÐÓ¦Âú×ã²ÎÕÕÍêÕûÐÔ¹æÔò£¬ÇëÓô¥·¢Æ÷ʵÏÖÁ½¸ö±íÎʵIJÎÕÕÍêÕûÐÔ¡£ 4.´´½¨´¥·¢Æ÷
¶ÔÓÚYGGLÊý¾Ý¿â£¬±íEmployeesµÄDepartmentIDÁÐÓë±íDepartmentsµÄDepartmentIDÁжÔÓ¦Âú×ã²ÎÕÕÍêÕûÐÔ¹æÔò£¬¼´£º
£¨1£© ÏòEmployees±íÌí¼Ó1Ìõ¼Ç¼ʱ£¬¸Ã¼Ç¼µÄDepartmentIDÖµÔÚDepartments
±íÖÐÓ¦´æÔÚ¡£
£¨2£© ÐÞ¸ÄDepartments±íDepartmentID ×Ö¶Îֵʱ£¬¸Ã×Ö¶ÎÔÚEmployees±íÖеĶÔ
Ó¦ÖµÒ²Ó¦Ð޸ġ£
£¨3£© ɾ³ýDepartments±íÖÐ1Ìõ¼Ç¼ʱ£¬¸Ã¼Ç¼DepartmentID×Ö¶ÎÖµÔÚEmployees
±íÖжÔÓ¦µÄ¼Ç¼ҲӦɾ³ý¡£
¶ÔÓÚÉÏÊö²ÎÕÕÍêÕûÐÔ¹æÔò£¬ÔÚ´Ëͨ¹ý´¥·¢Æ÷ʵÏÖ¡£ ÔÚ²éѯ·ÖÎöÆ÷±à¼´°¿ÚÊäÈë¸÷´¥·¢Æ÷µÄ´úÂë²¢Ö´ÐУº ¢ÙÏòEmployees±í²åÈë»òÐÞ¸Ä1Ìõ¼Ç¼ʱ£¬Í¨¹ý´¥·¢Æ÷¼ì²é¼Ç¼µÄDepartmentIDÖµÔÚDepartments±íÊÇ·ñ´æÔÚ£¬Èô²»´æÔÚ£¬ÔòÈ¡Ïû²åÈë»òÐ޸IJÙ×÷¡£ USE YGGL GO
CREATE TRIGGER EmployeesIns on dbo.Employees FOR INSRET AS BEGIN
IF((SELECT ins.departmentid from inserted ins)NOT IN (SELECT departmentid FROM departments)) ROLLBACK
£¯*¶Ôµ±Ç°ÊÂÎñ»Ø¹ö£¬¼´»Ö¸´µ½²åÈëǰµÄ״̬ END
¢ÚÐÞ¸ÄDepartments±ídepartmentID×Ö¶Îֵʱ£¬¸Ã×Ö¶ÎÔÚEmployees±íÖеĶÔÓ¦ÖµÒ²½øÐÐÏàÓ¦Ð޸ġ£ USE YGGL GO
CREATE TRIGGER DepartmentsUpdate on dbo£®Departments FoR UPDATE AS BEGIN
IF(COLUMNS_UPDATED()&01)>0 UPDATE Employees
17
SET DepartmentlD=(SELECT ins.DepartmentlD from INSERTED ins) WHERE DepaxtmentlD=(SELECT DepartmentlD FROM deleted) END GO
¢Ûɾ³ýDepartments±íÖÐ1Ìõ¼Ç¼µÄͬʱɾ³ý¸Ã¼Ç¼departmentlD×Ö¶ÎÖµÔÚEmployees±íÖжÔÓ¦µÄ¼Ç¼¡£ USE YGGL GO
CREATE TRIGGER DepartmentsDelete On db.Departments FOR DELETE AS BEGIN
DELETE FROM Employees
WHERE DepartmentlD=(SELECT DepartmentlD FROM deleted) END
GO
¡¾Ë¼¿¼ÓëÁ·Ï°¡¿
ÉÏÊö´¥·¢Æ÷µÄ¹¦ÄÜÓÃÍêÕûÐԵķ½·¨Íê³É¡£ ¡¾Ë¼¿¼ÓëÁ·Ï°¡¿
±àдÈçÏÂT-SQL³ÌÐò£º
£¨1£© ×Ô¶¨Òå1¸öÊý¾ÝÀàÐÍ£¬ÓÃÓÚÃèÊöYGGLÊý¾Ý¿âÖеÄDepartmentlD×ֶΣ¬È»ºó±àд
´úÂëÖØÐ¶¨ÒåÊý¾Ý¿â¸÷±í¡£
£¨2£© ¶ÔÓÚYGGLÊý¾Ý¿â£¬±íEmployeesµÄEmployeelDÁÐÓë±íSalaryµÄEmployeelDÁÐ
Ó¦Âú×ã²ÎÕÕÍêÕûÐÔ¹æÔò£¬ÇëÓô¥·¢Æ÷ʵÏÖÁ½¸ö±í¼äµÄ²ÎÕÕÍêÕûÐÔ¡£
18