现有以下两个关系模式: Employees(Eid,Name,DeptNO) Departments(Dept NO,DeptName,TotalNumber) Employees关系模式描述了职工编号、姓名和所在部门编号;Department

admin2012-04-09  30

问题 现有以下两个关系模式:
   Employees(Eid,Name,DeptNO)
   Departments(Dept NO,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 yiy 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 lose yjy deallocate yjy

解析 本题考查了后触发器的TransactSQL语句。其语法格式为:
   CREATE TRIGGER触发器名称
   ON{表名|视图名}
   [WITH ENCRYPTION]
   AS
   SQL语句
   AFTER和FOR,指定触发器只有在引发的SQL语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后,才执行此触发器,即后触发型触发器。
转载请注明原文地址:https://jikaoti.com/ti/oSt7FFFM
0

最新回复(0)