广 东 海 洋 大 学 学 生 实 验 报 告 书实验名称 实验七:使用触发器加强完整性课程名称数据库原理与应用成绩学院(系)专业班级学生姓名学号实验地点实验日期一、实验目的1.掌握 after和 Instead of触发器的使用方法二、实验内容按要求完成给出的下列题目,要求写出相应数据库的脚本语句。(要求写出存储过程的创建和执行语句。)1.创建触发器,当修改Orders 表中某行数据的mShippingCharges和 mGiftWrapCharges 时,要修改相应行的总价 mTotalCost ,以保证结果的正确性。2.创建 after触发器,禁止删除ToysBrand 表中的记录。3.创建 Instead of触发器,禁止删除ToysBrand 表中的记录。4.创建触发器,在Toys 表中插入数据或者修改数据时,要保证siLowerAge 小于 siUpperAge 的值,否则不能插入或修改。5.创建触发器,禁止对Shoppers 表进行任何更新(增删改)操作。6.当 Toys 表中的玩具价格mToyRate 增加时,创建一个触发器使得Toys 表的 mToyRate的属性的平均值不超过 28 美元,并且最大值不超过55 美元,否则不予修改。7.对 Shipment 表进行插入操作或者修改操作时,应保证dShipmentDate 小于当前日期。8.对于 Recruitment数据库,创建一个视图名为vwCandidateContractRecruiter,其中包含了外部候选人(ExternalCandidate表)的代码, 姓名,测试成绩, 以及其对应的合同招聘人员(ContractRecruiter表)的代码和名称。并对该视图进行更新,修改外部候选人代码为‘000049’的候选人,更改其测验成绩为 87 分,并更改相对应的合同招聘人员的名称为‘Roger Federal’。通过创建一个触发器使得能对该视图直接通过下面的Update 语句进行更新。update vwCandidateContractRecruiter set siTestScore=87, cName=’Roger Federal’where cCandidateCode= ’000049’ 三、实验过程GDOU-B-11-1121. CREATE TRIGGERtri1 ON Orders AFTERUPDATE AS IFUPDATE ( mShippingCharges)OR UPDATE ( mGiftWrapCharges) BEGIN DECLARE@change1MONEY DECLARE@change2MONEY SELECT@change1 =mShippingCharges+mGiftWrapCharges FROM inserted SELECT@change2 =mShippingCharges+mGiftWrapCharges FROM deleted UPDATEOrders SETmTotalCost=mTotalCost+( @change1 - @change2 ) WHERE cOrderNo=( SELECTcOrderNoFROM INSERTED ) END 2. CREATE TRIGGERtri2 ON To...