【正确答案】正确答案:CREATE TRIGGER tri_zc ON教师表 AVTER INSERT,UPDATE AS BEGIN DECLATE@ZC varchar(10),@dept varchar(30) SELECT@dept=所在部门号,@2c=职称FROM inserted IF@zc'教授'or'副教授' Update部门表 SET高级职称人数=高级职称人数+1 Where部门号=@dept End
【答案解析】解析:创建触发器的SQL语句为:CREATE TRIGGER,其语法格式为: CREATE TRIGGER[schema_name.]trigger_name ON{table|view} {FOR|AFTER |INSTEAD OF} {[INSERT][,][DELETE][,][UPDATE]} AS{sql_statement} [;] 其中AFTER指定触发器为后触发型触发器,INSERT,UPDATE和DELETE为指定引发触发器执行的操作。根据原题要求,Insert触发器会在inserted表中添加一条刚插入的记录,Update触发器会在更新数据后将更新前的数据保存在deleted表中,更新后的数据保存在inserted表中。在教师表中插入或者更新的时候,都会在inserted表中增加一条记录,所以只需在触发器查询inserted表中查询有没有“教授’’或者“副教授”的记录,如果有,则触发修改相应部门的高级职称人数即可。