触发器作业
sql触发器习题[精华]
![sql触发器习题[精华]](https://img.taocdn.com/s3/m/2dd04a04a200a6c30c22590102020740be1ecd81.png)
SQL触发器习题(一)实验任务一:1、创建触发器在学生信息管理系统中,学生信息表包含列“学号”、“姓名”、“性别”、“出生年月”、“班级号”;班级信息表中包含列“班级号”、“班级名称”、“人数”;课程信息表包含列“课程代号”、“课程名称”;学生成绩表包含列“学号”、列“课程代号”、列“成绩”,已用约束保证成绩的范围为0~100分。
(用附录中的脚本创建)--1)在student上创建INSERT触发器stu_insert,要求在student 表中插入记录时(要求每次只能插入一条记录),这个触发器都将更新class表中的class_nun列。
并测试触发器stu_insert。
create trigger stu_inserton student for insertasif @@rowcount>1beginRAISERROR('You cannot insert more than one student at a time.', 16, 1)ROLLBACK TRANreturn--注意此处的return语句不能省略,因为在触发器脚本中的ROLLBACK TRAN语句之后还存在语句,那么将会执行这些语句,而为了其后的语句不执行,必须加入return语句endupdate classset class_num=class_num+1where class_id=(select class_id from inserted)print 'class表中数据更新成功'go--测试1insert into studentselect '0601012','丽','女','1986-07-11', '0601' union all select '0601013','梅','女','1988-02-07', '0601'--测试2insert into student values('0602011','文','女','1986-09-21', '0602')--2)修改题1中创建的INSERT触发器stu_insert,要求在student 表中插入记录时(允许插入多条记录),这个触发器都将更新class表中的class_nun列。
触发器作业参考答案

--测试数据
insert into sc
values('09105102','003',92,null)
update sc
set grade=77
where sno='09105102' and cno='003'
close record --关闭游标
--测试数据
--多行更新
update spj
set qty=200
where sno='S2'and pno='p3';
触发器作业2参考答案:
(1)在学生选课数据库的SC关系中增加属性列Status,用来记录课程成绩的等级,0-59分为“不合格”,60-69为“合格”,70-89为“良好”,90以上为“优秀”。
while @@FETCH_STATUS=0
begin
update spj
set qty=300
from inserted,spj
where inserted.sno in (select sno from s where city='北京')
--测试数据
--单行插入与更新
insert into spj
values('S2','P1','J2',100);
insert into spj
values('S1','P1','J2',100);
update spj
set qty=200
where sno='S2'and pno='p5' and jno='J1';
触发器作业

设计一个触发器,该触发器仅允许dbo用户可以删除employee3266表内数据,否则出错。
create trigger employeedeleteon employee3266for deleteasif exists(select *from deleted)beginif user!='dbo'beginprint '你无权删除!'rollbackendenddrop trigger employeedelete测试:(以sa用户)delete from employee3266where employeeno='E2005001'测试:(以其他用户)sp_addlogin 'wf','wf'/*——————登录名密码*/sp_adduser 'wf','wf'grant all privilegeson employee3266to wf;/*退出DBMS,重新以wf身份登入DBMS,执行删除操作*/delete from employee3266where employeeno='E2005001'在ordermaster3266表中创建触发器,插入数据时要先检查employee3266表中是否存在和ordermaster3266表同样值的业务员编号,如果不存在则不允许插入。
create trigger OrderMasterIns on OrderMaster3266for insertasif not exists(select b.saleNofrom employee3266 a,inserted b,ordermaster3266 cwhere b.saleno=a.employeeNo)beginprint '插入数据错误!'rollbackend检验:insert OrderMaster3266 values('200806135578','C20050001','E2009008',0.00,'20080612','20080615','I000000010')请完成下面实验内容:(1) 创建触发器,该触发器仅允许“dbo”用户可以删除Employee表内数据。
触发器练习

触发器练习(一)1、画出图题5-1所示的RS 触发器输出端Q 、Q 端的波形,输入端S 与R 的波形如图所示。
(设Q 初始状态为0)S RSRSRQQ....图题5-12、画出图题5-2所示的RS 触发器输出端Q 、Q 端的波形,输入端S 与R 的波形如图所示。
(设Q 初始状态为0)S RS RQQ...SR....图题5-23、画出图题5-3所示的同步RS 触发器输出端Q 、Q 端的波形,输入端S 、R 与CLK 的波形如图所示。
(设Q 初始状态为0)C1S RS RQQ....CLKS RCLK...图题5-34、画出图题5-4所示的同步D 触发器输出Q 端的波形,输入端D 与CLK 的波形如图所示。
(设Q 初始状态为0)C1DDQQ....CLKDCLK..图题5-45、若在图5-5电路中的CP 、S 、R 输入端,加入如图4.27所示波形的信号,试画出其 Q 和Q端波形,设初态Q =0。
SRCP触发器练习(二)1、画出图题5-6所示的同步JK 触发器输出Q 端的波形,输入端J 、K 与CLK 的波形如图所示。
(设Q 初始状态为0)J KQQ..CLKJKCLK ......C11J 1K..图题5-62、画出图题5-6所示的边沿触发D 触发器输出端Q 端的波形,输入端D 与CLK的波形如图所示。
(设Q 初始状态为0)C11D D QQ....CLKDCLK...D QQ....CLKDCLK...C11D (1)(2)3、画出图题5-7所示的边沿D 触发器输出Q 端的波形,CLK 的波形如图所示。
(设Q 初始状态为0)C11D Q 1CLK....CLK.1C11D Q 2CLK .CLK .图题5-74、画出图题5-8所示的JK 触发器输出Q 端的波形,输入端J 、K 与CLK 的波形如图所示。
(设Q 初始状态为0)J KQQ....CLKJ KCLK ...C11J 1KJ KCLK ......图题5-85、试画出图题5-9所示T 触发器输出Q 端的波形,输入端CLK 的波形如图所示。
第十二章 触发器习题及答案

第十二章 触发器习题及答案一、填空题1、 触发器有_____个稳态,存储8位二进制信息要______个触发器。
2、 一个基本RS 触发器在正常工作时,它的约束条件是R + S =1,则它不允许输入S =____且R =____的信号。
3、 触发发有两个互补的输出端Q 、Q ,定义触发器的1状态为Q=___________,0状态为_________可见,触发器的状态指的是______端的状态。
4、 一个基本RS 触发器在正常工作时,不允许输入R=S=1的信号,因此它的约束条件是___________。
5、 在一个CP 脉冲作用下,引起触发器两次或多次翻转的现象称为触发器的__________ ,触发方式为__________式或_____________的触发器不会出现这种现象。
6、 触发器是一种由门电路构成并具有两个稳定状态的电路,两个稳定状态分别用来表示和寄存二进制数码______和______。
7、按逻辑功能不同可分为_______触发器______触发器______触发器_____触发器和_____触发器等。
8、按电路结构不同,可分为______触发器,________触发器,________触发器,________触发器等。
9、描述触发器功能的方法有:__________、____________、__________、______________和________________。
10、电路在没有外加信息触发时保持某一状态不变,而这种状态叫____________。
11、防止空翻的触发器结构有_________________________。
12、触发器的基本性质有_____________________________________________。
13、从结构上看,时钟同步R-S 触发器是在R-S 触发器的基础上增加了____________构成的。
14、比结构上看主从结构的触发器是由主触发器和___________组成。
trigger定时任务自动触发原理

trigger定时任务自动触发原理Trigger定时任务自动触发是一种常见的任务调度方式,它通过在预定的时间点触发任务的执行,使得任务能够按照设定的频率、时间间隔或者特定时刻自动执行。
在此,我将为您介绍Trigger定时任务自动触发的原理,并以Quartz作为例子进行详细说明。
首先,我们先来了解一下Quartz是什么。
Quartz是一个开源的任务调度框架,它提供了丰富的功能和灵活性,可用于管理和调度大规模的定时任务。
Quartz主要由四个部分组成:触发器(Trigger)、调度器(Scheduler)、作业(Job)和触发器管理器(TriggerManager)。
触发器是Quartz中的关键概念,它用于触发作业的执行。
每个触发器都有一个关联的作业,当触发器触发时,作业将被执行。
Quartz提供了多种类型的触发器,包括简单触发器(SimpleTrigger)、日历触发器(CalendarTrigger)和Cron表达式触发器(CronTrigger)等。
这些触发器可以根据时间、日期、间隔或者特定条件来触发作业的执行。
调度器是Quartz的核心组件,它用于管理触发器和作业的执行。
调度器负责根据触发器的配置和调度规则来触发作业的执行,并提供了丰富的调度功能,如暂停、恢复、删除和修改触发器等。
调度器还可以配置成集群模式,以实现高可用性和负载均衡。
作业是需要定时执行的任务,它由开发者编写并实现Job接口中的execute方法。
当触发器触发时,调度器会根据配置找到相应的作业,并调用其execute方法执行任务。
触发器管理器是负责管理触发器的组件,它负责触发器的创建、删除和管理等操作。
触发器管理器可以根据配置的触发器来触发作业的执行,也可以手动触发作业的执行。
Quartz中的定时任务自动触发原理如下:1.配置触发器:首先,开发者需要配置触发器的相关参数,包括触发器类型、触发器时间规则和触发器的作业等。
这些参数将用于设置触发器的触发条件和作业的执行规则。
触发器练习题

1
S
SD
& d
R
CP 1
S
•9
同步RS 触发器的功能表
CP R S Q Q
0 φφ
保持
1 00
保持
1 01 1 0
1 10 0 1
1 1 1 不确定
逻
辑Q
Q
符 RD R C S SD 号
简化的功能表
§13.1.2#43;1 Qn 1
1
0
0
1
1 不确定
Qn+1 为新状态, Qn 为原状态
学完本章应掌握以下问题:
1. 触发器的输出随输入如何变化?
牢记 R-S、 JK 、D 及T 和T触发器的真值表。 逻辑符号
2. 触发器的输出在何时变化?
上升沿触发还是下降沿触发? 3. 触发器的初始状态如何设定?
RD KC J SD
直接置位端和直接复位端。
不需要掌握触发器的内部电路结构和原理。
•1
# •20
第十三章 触发器 课后习题
•21
13-1 对于基本RS 触发器,若输入波形如下,试分别画出原
态为0 和原态为1 对应时刻的Q 端和Q 端波形 SD
t RD
t
原态为0 原态为1
Q0
1 Q
1 Q
Q0
•22
13-2 试分析图示逻辑电路的功能,说明它是什么类型的触发
器,画出它的逻辑符号。
功能表
RD
CP
S R
Q
Q
#
•24
13-5 在下图所示输入信号激励下,试分别画出TTL主从型 和CMOS边沿型JK 触发器Q 端的波形,(触发器原态为 0)
CP J K
触发器 题

答案:D
16.描述触发器的逻辑功能的 方法有 。 A.状态转换真值表 B.特性方程 C.状态转换图 D.状态转换卡诺图
答案:ABCD
17.为实现将JK触发器转换 为D触发器,应使 。
A.J=D,K= D B. K=D,J= D
C.J=K=D D.J=K= D
答案:A
18.边沿式D触发器是一种 稳态电路。 A.无 B.单 C.双 D.多
答案:C
二、判断题(正确打√,错误的打×)
1.D触发器的特性方程
为 Qn1 D ,与 Qn无关,所以
它没有记忆功能。( ) 答案: ×
2.RS触发器的约束条件RS=0表示 不允许出现R=S=1的输入。( )
11.欲使JK触发器按 Qn1 0工作,
可使JK触发器的输入端 。 A.J=K=1 B.J=Q,K=Q C.J=Q,K=1 D.J=0,K=1 E.J=K=1
答案:BCD
12.欲使JK触发器按Qn1 1工作,
可使JK触发器的输入端 。
A.J=K=1 B.J=1,K=0 C.J=K= Q
D.J=K=0 E.J= Q ,K=0
答案:BCE
13.欲使D触发器按 Qn1 Qn
工作,应使输入D= 。
A.0 B.1 C.Q D.Q
答案:D
14.下列触发器中,克服了 空翻现象的有 。
A.边沿D触发器 B.主从RS触发器 C.同步RS触发器 D.主从JK触发器
答案:ABD 15.下列触发器中,没有 约束条件的是 。
第四章(选择、判断、填空共30题)
一、选择题 1.N个触发器可以构成能寄存 位二进制数码的寄存器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
银行的取款机系统
问题:
1、解决银行取款问题:当向交易信息表(transInfo)中插入一条交易信息时,我们应自动更新对应帐户的余额。
create trigger trig_transInfo
on transInfo
For Insert
AS
declare@type char(4),@outMoney MONEY declare@myCardID char(10),@balance MONEY select@type=transType,@outMoney= transMoney,@myCardID=cardID from inserted If(@type='支取')
update bank set CurrentMoney=CurrentMoney -@outMoney where cardID=@myCardID
else
update bank set
currentMoney=currentMoney+@outMoney where card=@mycardID
go
2、当删除交易信息表时,要求自动备份被删除的数据到表backupTable中。
create trigger trig_delete_transInfo
on transInfo
for delete
AS
print'开始备份数据,请稍后···'
if not exists(select*from sysobjects where name='backupTable')
select*INTO bactkupTable from deleted else
insert INTO backupTable select*from deleted
print'备份数据成功,备份表中的数据为:' select*from backupTable
go
3、跟踪用户的交易,交易金额超过20000元,则取消交易,并给出错误提示。
create trigger trig_update_bank
on bank
for update
AS
declare@beforeMoney MONEY,@afterMoney MONEY
select@beforeMoney=currentMoney from deleted currentMoney
select@afterMoney=currentMoney from inserted currentMiney
If ABS(@afterMoney-@beforeMoney)>20000 begin
print'交易金额'+
convert(varchar(8),ABS(@afterMoney-
@beforeMoney))
ROLLBACK transaction
end
4、交易日期一般由系统自动产生,默认为当前日期。
为了安全起见,一般禁止修改,以防舞弊。
create trigger trig_update_transInfo
on transInfo
for update
AS
If update(transdate)
begin
print'交易失败···'
raiserror('每笔交易不能超过万元,交易失败
',16,1)
ROLLBACK transaction
end。