A 先约束后触发器 B先触发器后约束 C同时执行 D 冲突
第1题
实验十三:触发器 一、实验目的 理解触发器的概念和作用;了解触发器的分类及触发条件;掌握触发器的定义及应用。 二、实验原理 使用CREATE TRIGGER语句定义触发器,ALTER TRIGGER语句修改触发器,DROP TRIGGER语句删除触发器。触发器分AFTER/FOR和INSTEAD OF两种类型:AFTER/FOR类型的触发器是在相应的触发语句(insert、delete、update)执行完后被触发的。如果触发语句对应的表上有完整性约束,这些完整性约束必须不违背时,相应的触发语句才能执行,然后才能触发对应的AFTER/FOR类型的触发器。INSTEAD OF类型的触发器会在触发语句(insert、delete、update)执行之前被触发,并取代相应的触发语句。在表或视图上,每个INSERT、UPDATE或DELETE语句只能创建一个INSTEAD OF类型的触发器。SQL SERVER为每个触发器都创建了两个临时表INSERTED表和DELETED表,这两个表的逻辑结构与被触发器作用的表一样,用户可以读取这两个表的内容,但不能对它们进行修改,触发器执行完后,这两个表也会自动删除。当执行INSERT时,INSERTED表中保存要向表中插入的所有行;当执行DELETE时,DELETED表中保存要从表中删除的所有行;当执行UPDATE时,修改前的行保存在DELETED表中,修改后的行保存在INSERTED行中。 三、实验设备 安装有SQL SERVER 2012的计算机。 四、实验示例 1、写一个允许用户一次只删除一条员工记录的触发器。 create trigger tr_emp on employee for delete as declare @row_cnt int select @row_cnt=count(*) from deleted if @row_cnt>1 begin print '删除操作不允许删除多条人事表数据!!!' rollback transaction end delete from employee where sex='女' --显示'删除操作不允许删除多条人事表数据!!!' 2、创建一个触发器,只能接受女员工 create trigger employee_insert2 on employee after insert as if exists(select * from inserted where sex='男') begin print '本公司不接受男员工!' rollback transaction end else print '欢迎加入本公司!' insert employee values('E0021','林中正','男','管理','总经理','1974-10-01','1953-05-04',100000,'13879765667','上海市') --显示'本公司不接受男员工!' 3、定义一触发器,保证新添加的员工的工资不能超过5000元 create trigger employee_insert on employee after insert as if(select salary from inserted)>5000 begin print '新添加的员工的工资不能超过5000元!' rollback end 五、实验内容 l 针对bookshop数据库,完成以下操作: 1、针对employee表写一个DELETE触发器,显示删除的员工人数。 2、针对employee表写一个UPDATE触发器,限制每次工资额的变动不能超过原工资的20%。 3、定义一个触发器,保证新添加的员工的工资不能超过5000元 4、对sale_item表创建一个触发器,当插入一条销售明细记录时,如果该记录的产品数量超过5,则显示“欢迎成为本公司的VIP会员!” 5、定义一个触发器,当修改sale_item表中的销售数量或者价格时,自动更新sales表中的订单金额。 6、定义一个触发器,实现对sales表的级联删除操作。 7、定义一个触发器,实现对books表的级联删除操作。
第2题
A、触发器是在数据修改前被触发,约束是在数据修改后被触发
B、触发器是一个能自动执行的特殊的存储过程
C、触发器作为一个独立的对象存在,与数据库中其他对象无关
D、inserted表和deleted表是数据库中的物理表
第3题
A、触发器是一种特殊的存储过程,它在试图更改触发器所保护的数据时自动执行
B、它被定义为在对表或视图发出UPDATE、INSERT或DELETE语句时自动执行,在有数据修改时自动强制执行其业务规则
C、触发器可以扩展SQL SERVER约束、默认值和规则的完整性检查逻辑,但可只要约束和默认提供了全部所需的功能,就应使用约束和默认值
D、触发器只能人工激活
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!