现有如下两个关系模式: Employees(Eid,Name,DeptNO) Departments(DeptNO,DeptName,TotalNumber) Employees关系模式描述了职工编号、姓名和所在部门编号;Departments关系模式描述了部门编号、名称和职工总人数。 请按SQL Server所采用的Tansact-SQL语法格式编写实现具有功能的后触发型触发器:每当在Employees表中插入一行数据时,相应部门的职工总人数就加1。
参考答案:
解析:create trigger sql_tri on employees for insert as declare @ eid varchar(11) declare @ name varchar(20) declare @ deptno varchar(11) declare yjy cursor for select * from inserted open yjy fetch next from yjy into @ eid,@ name,@ deptno while @ @ fetch_status=0 begin update departments set totalnumber=totalnumber+1 where deptno= @ deptno fetch next from yjy into @ eid,@ name,@ deptno end close yjy deallocate yjy 本题考查了后触发器的Transact-SQL语句。其语法格式为: CREATE TRIGGER触发器名称 ON |表名| 视图名| [WITH ENCRYPTION] AS SQL语句 AFTER和FOR,指定触发器只有在引发的SQL语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后,才执行此触发器,即后触发型触发器。