第十章 触发器
触发器课件

05
触发器的优缺点
触发器的优点
高效性
触发器可以自动执行,无需人工干预,从而提高了工作效率。
准确性
触发器可以确保在特定条件下执行特定操作,提高了操作的准确性 。
一致性
通过触发器,可以确保在多个地方执行相同的操作,保持数据的一 致性。
触发器的缺点
01
02
03
04
复杂性
触发器需要编写代码,增加了 开发的复杂性。
触发器的类型
插入触发器
在向表中插入新记录时触发。
更新触发器
在更新表中记录时触发。
删除触发器
在从表中删除记录时触发。
触发器的工作原理
触发条件
触发器的工作原理是基于特定的 触发条件,例如当在某个表上执 行INSERT、UPDATE或DELETE
操作时。
触发事件
当满足触发条件时,触发器会执 行相应的操作,例如级联更新、 数据验证或自动生成派生数据等
调试困难
触发器在执行过程中出现问题 时,调试可能会比较困难。
性能问题
如果触发器执行的操作比较复 杂,可能会影响数据库的性能
。
维护成本高
随着业务需求的变化,可能需 要修改或更新触发器,增加了
维护成本。
06
触发器与其他数据库对象 的比较
与存储过程的比较
定义方式
存储过程是一组为了完成特定功能的SQL语句集,可以被 多次调用。触发器是在表上定义的,当表上出现特定事件 时自动执行的代码块。
删除触发器
当表中的记录被删除时,触发器会 自动执行。
在查询中应用触发器
SELECT语句触发器
在执行SELECT语句时,触发器会自动执行 。
UPDATE语句触发器
触发器(电子技术课件)

触发器•1.概述•2.SR锁存器•3.电平触发的触发器•4.边沿触发的触发器•5.触发器的逻辑功能及其描述方法一、概述1.触发器的特点(1)有两个稳定状态(简称稳态),用来表示逻辑0和1。
一个触发器可存储 1 位二进制数码(2)在输入信号作用下,触发器的两个稳定状态可相互转换(称为状态的翻转)。
(3)输入信号消失后,新状态可长期保持下来,具有记忆功能。
2.触发器的分类(1)按电路结构分(不同的电路结构在状态变化过程中有不同的动作特点)基本触发器:输入信号电平直接控制同步触发器:时钟电平直接控制;CP=1或0时有效主从触发器:主从控制脉冲触发;CP下降沿或上升沿到来时有效边沿触发器:时钟边沿控制;CP下降沿或上升沿时刻有效(2)按逻辑功能分RS 触发器JK触发器D触发器T触发器3.触发器的逻辑功能指触发器输出次态Q n+1与输出的现态Q n及输入信号之间的逻辑关系。
触发器逻辑功能的描述方法主要有特性表、特性方程、驱动表(激励表)、状态转换图(状态图)和波形图(时序图)等。
SR(Set-Reset)锁存器(又叫基本RS触发器)是各种触发器构成的基本部件,也是最简单的一种触发器。
锁存器---不需要触发信号,由输入信号直接完成置0或置1操作。
触发器---需要一个触发信号(称为时钟信号CLOCK),只有触发信号有效时,才按输入信号完成置0或置1操作。
1.电路结构与工作原理(1)用或非门组成的锁存器•电路组成信号输入端互补输出端Q和Q′为互补输出端,正常工作时,它们的输出状态相反。
通常用Q的状态表示触发器的状态,即:Q = 0,Q'= 1时,称为触发器的“0”态。
Q = 1,Q'= 0时,称为触发器的“1”态。
•工作原理0①R D =0,S D =1时1001锁存器为“1”态Q'=0Q =1②R D =1,S D =0时101锁存器为“0”态Q'=1Q =0•工作原理③RD =0,SD=0时11锁存器为“0”态Q'=1Q=0锁存器为“1”态Q'=0Q=1•若Q = 00•若Q = 11锁存器的状态保持不变01 0•工作原理1④R D =1,S D =1时1“禁止”态Q'=0Q =0•Q 和Q'违背互补输出的条件。
触发器专项讲解课件

业务逻辑触发器可以提高业务的效率和 准确性,减少人为干预和错误。
04
触发器的优缺点
触发器的优点
01
02
03
04
高效性
触发器在满足特定条件时自动 执行,无需用户手动干预,提
高了处理效率。
一致性
触发器可以确保在多个地方执 行相同的操作,保持数据的一
致性。
简化操作
通过触发器,可以将一系列复 杂的操作简化为简单的规则,
方便用户管理。
预防性操作
触发器可以在数据变更之前或 之后立即执行某些操作,例如 验证、日志记录或数据同步。
触发器的缺点
性能影响
触发器在数据变更时需 要额外执行,可能会对 数据库性能产生一定影
响。
复杂性增加
触发器使得数据库操作 变得更为复杂,增加了
维护和调试的难度。
难以管理
大量的触发器可能导致 管理混乱,使得跟踪和
触发器可以与事务处理相关联,确保 数据的完整性和一致性。
03
触发器的使用场景
数据库操作中的触发器
数据库触发器是一种特殊的存储过程,它会在数据库表上执行特定操作 时自动执行。例如,当在表中插入、更新或删除记录时,触发器可以自 动执行相应的操作。
数据库触发器可以用于实现数据完整性束缚、自动日志记录、数据校验 等功能。通过在触发器中编写逻辑,可以确保数据在修改时遵循特定的
定义与功能
触发器是一种数据库对象,用于响应表事件,而视图是基于SQL 查询的结果集的可视化表。
触发时机
触发器在特定表事件产生时自动执行,而视图用于查询数据。
执行方式
触发器是自动执行的,而视图是查询数据时使用的对象。
07
触发器应用案例分析
触发器ppt课件

编写触发器代码
选择编程语言
选择适当的编程语言,例如 JavaScript、Python或C#,以便
根据需要编写触发器代码。
编写代码逻辑
根据触发器的目标和条件,编写适 当的代码逻辑以实现所需的功能或 操作。
调试和测试代码
在编写完代码后,进行调试和测试 以确保其正常工作并实现所需的功 能。
测试触发器
感谢您的观看
THANKS
案例一:使用触发器实现数据库审计
3. 触发器执行计划
为触发器制定执行计划,确保触发器能够在数据操作发生时立即执行。
4. 触发器测试
测试触发器的功能和性能,确保其正常工作并记录所有操作。
案例一:使用触发器实现数据库审计
注意事项
1. 考虑性能影响:由于触发器是在每个操作发生时自动执行的,因此可能会对数据库性能产 生一定影响。
与事件比较
事件触发器是一种特殊类型的触发器,它与事件相关联,在 事件发生时自动触发执行。
事件是指数据库中的某种状态变化,例如数据的插入、更新 或删除。事件触发器可以根据事件类型和条件来定义触发执 行的操作。与普通触发器不同,事件触发器更加关注实时性 和事件响应的及时性。
与工作流比较
分工合作
工作流和触发器是两种不同类型的自动化机制。工作流通常用于定义业务流程和任务之间的流转关系 ,而触发器则用于在特定事件或条件下触发自动执行的操作。两者在分工合作方面具有明显的差异, 但可以相互配合实现更复杂的业务逻辑。
3
Байду номын сангаас
2. 确保代码正确性:需要确保触发器代码的正确 性和稳定性,以避免出现错误或异常情况。
案例三:使用触发器实现事件驱动处理
• 总结词:通过使用数据库触发器,可以实现对特定事件的实时监控和响应,提高系统的可靠性和稳定性。
触发器pptppt

触发器输入端同时 当RS触发器输入端同时加1时,Q和Q 都变成了 。当R 触发器输入端同时加 时 和 都变成了0。 同时由 → 时 触发器的输出将会出现由0→ → 、 S同时 由 1→0时 , 触发器的输出将会出现由 →1→0… 同时 反复切换。 反复切换。
G1 0
≥1
≥1
G2 0
G1 0
≥1
≥1
G2 0
R
S
R
S
当R=S=0时,输出不变。 时 输出不变。
基本RS触发器 基本RS触发器 RS
1 Q Q 0 0 Q Q 1
G1 0
≥1
≥1
G2 1
G1 1
≥1
≥1
G2 0
R
S 0
R Q
S Q 0
Q R=0,S=1: Q=1 , =0 , : Q R=1,S=0, Q=0 , =1 , , Q R=1,S=1, Q=0 , =0 , ,
边沿触发器
三、维持阻塞D触发器 维持阻塞D ♦ 电路结构和逻辑符号
基本RS触发器 基本RS触发器 RS G5 & Q5 G3 & Q3 G1 &
Q
1D C1
Q Q
D
& G6 Q6 CP
& G4 Q4
& G2
Q
上升沿触发
构成了D信号的输入通道。 G3 、G4 、 G5 、 G6 构成了D 信号的输入通道。 D 信号只有通过 这几个门的传送,才能到达基本RS触发器的输入端, RS触发器的输入端 这几个门的传送,才能到达基本RS触发器的输入端,使触发 器的输出状态改变。 器的输出状态改变。
Powerpoint的触发器教案

PowerPoint的触发器教案教学目标:1. 了解PowerPoint触发器的概念和作用;2. 学会使用PowerPoint触发器实现交互效果;3. 掌握触发器的设置和编辑方法;4. 能够运用触发器提高演示文稿的趣味性和互动性。
教学内容:第一章:触发器概述1.1 触发器的定义1.2 触发器的作用1.3 触发器与动画的关系第二章:添加和设置触发器2.1 添加触发器的方法2.2 设置触发器的属性2.3 触发器的编辑和修改第三章:触发器在动画中的应用3.1 基本动画触发器3.2 组合动画触发器3.3 动画序列触发器第四章:触发器在交互中的应用4.1 按钮触发器4.2 条件触发器4.3 事件触发器第五章:触发器的实战应用5.1 触发器在教学演示中的应用5.2 触发器在企业培训中的应用5.3 触发器在商业演示中的应用教学方法:1. 讲授法:讲解触发器的概念、作用和设置方法;2. 演示法:展示触发器在实际中的应用案例;3. 实践法:让学生动手操作,实际设置和应用触发器;4. 讨论法:分组讨论,分享触发器的使用心得和创意。
教学评估:1. 课堂问答:检查学生对触发器概念的理解;2. 操作练习:评估学生设置和应用触发器的熟练程度;3. 创意展示:评价学生触发器的创新使用和趣味性;4. 课后作业:收集学生对触发器的实践体会和心得。
教学资源:1. PowerPoint软件;2. 教学PPT;3. 触发器应用案例素材;4. 学生分组讨论材料。
第六章:触发器的的高级应用6.1 触发器的嵌套使用6.2 触发器与条件动作的结合6.3 触发器在复杂动画中的综合应用第七章:触发器在多媒体教学中的应用7.1 多媒体教学概述7.2 触发器在多媒体教学中的优势7.3 触发器在多媒体教学案例分析第八章:触发器在企业培训中的应用8.1 企业培训概述8.2 触发器在企业培训中的优势8.3 触发器在企业培训案例分析第九章:触发器在商业演示中的应用9.1 商业演示概述9.2 触发器在商业演示中的优势9.3 触发器在商业演示案例分析第十章:触发器的创新应用与实践10.1 触发器创新应用的理念10.2 触发器创新应用的方法10.3 触发器创新应用的实践案例教学方法:1. 讲授法:讲解触发器的高级应用、多媒体教学、企业培训和商业演示的相关概念;2. 演示法:展示触发器在实际中的应用案例;3. 实践法:让学生动手操作,实际设置和应用触发器;4. 案例分析法:分析实际案例,让学生了解触发器在不同场景中的应用;5. 讨论法:分组讨论,分享触发器的使用心得和创意。
触发器的工作原理及逻辑功能

电工电子技术基础
触发器的工作原理及逻辑功能
制作 曹磊 2010年12月21日
触发器的工作原理及逻辑功能
学习要点
•触发器的特点几分类 •触发器的工作原理
•触发器的逻辑功能及转换
触发器
1.1 触发器的特点及分类 1.2 基本RS触发器 1.3 同步RS触发器 1.4 主从JK触发器
Q n 1
功能 置0 置1
SD D C RD Q
0 1
Q
(b)逻辑符号
D 触发器的构成及其逻辑符号
1.5.2 JK触发器→T触发器
T 触发器的功能表 T 0 1
Q C K CP Q
Q n 1
Qn
功能 保持 翻转
SD T C RD
Qn
T 1
J
Q
Q
(a) 电路 (b)逻辑符号 T 触发器的构成及其逻辑符号
冲后,触发器状态必定与原来的状态相反,即
Q n 1 Q n
。由于每来一
个 CP 脉冲触发器状态翻转一次,故这种情况下触发器具有计数功能。
1.4.3 功能表及波形图
J K 0 1 0 1
Q n 1 Qn
功能 保持 置0 置1 翻转
功 能 表
0 0 1 1
CP
0 1
Qn
波 形 图J K QΒιβλιοθήκη 1.5 触发器逻辑功能的转换
1.3.1 功能表
CP 0 1 1 1 1
R × 0 0 1 1
S × 0 1 0 1
Q
n+1 n
功能 保持 保持 置1 置0 不允许
Q
Qn 1 0 不定
1.3.2特点几波形图 主 要 特 点 波 形 图
触发器的逻辑功能及其描述方法课件

01
02
03
通信领域
随着通信技术的发展,触 发器在通信领域的应用越 来越广泛,如信号处理、 调制解调等。
自动化控制领域
随着自动化技术的普及, 触发器在自动化控制领域 的应用也越来越广泛,如 工业控制、智能家居等。
计算机硬件领域
计算机硬件的快速发展, 触发器在计算机硬件领域 的应用也越来越广泛,如 内存管理、总线控制等。
触发器是与表相关联的数据库对象,当满足特定条件时,会自动 执行预定义的操作。
触发器的作用
保证数据完整性
触发器可以用于实现数据完整性约束,确保数据的 准确性和一致性。
自动处理业务逻辑
触发器可以在数据修改时自动执行,实现复杂的业 务逻辑处理。
维护历史数据
触发器可以用于维护历史数据,记录数据修改前后 的状态,以便于跟踪和审计。
触发器的逻辑功能和性能指标 对计算机的运算速度、数据存 储容量和可靠性具有重要影响 。
05
触发器的实现方式
基于硬件的实现方式
80%
硬件描述语言
使用硬件描述语言(如VHDL或 Verilog)来描述触发器的逻辑功 能,并通过合成工具将其转换为 实际的硬件电路。
100%
逻辑门实现
将触发器的逻辑功能通过与门、 或门、非门等基本逻辑门来实现 。
02
触发器的逻辑功能
触发器的输入输出关系
01
触发器的输入输出关系是逻辑函 数的一种实现方式,它描述了触 发器在给定输入条件下,会产生 何种输出状态。
02
触发器的输入输出关系可以用真 值表、逻辑表达式、波形图等形 式进行描述。
触发器的逻辑运算
触发器支持的基本逻辑运算包括与(AND)、或(OR)、 非(NOT)等。
触发器等原理及应用概要课件

合传输的格式。
同步检测
02
触发器用于检测通信系统中的同步信号,确保接收端与发送端
同步工作。
数据链路控制
03
触发器用于实现通信系统中的数据链路控制,确保数据的可靠
传输。
CHAPTER 04
触发器的优缺点
优点
高效性
触发器在特定事件发生 时自动执行,无需人工 干预,提高了处理效率。
一致性
触发器可以确保数据的 完整性和一致性,通过 在数据库层面上实施业
务规则。
可靠性
触发器可以用于实现数 据的备份、恢复和复制 等操作,提高了数据可
靠性。
安全性
触发器可以用于实现数 据的安全控制,防止非
法操作和数据泄露。
缺点
01
02
03
04
复杂性
触发器编写和维护相对复杂, 需要专业的数据库管理员或开
发人员。
性能影响
触发器在执行时会对数据库性 能产生一定影响,特别是在高
利用集成电路实现触发动作,具有 高精度、低功耗、小型化等优点, 常见于微处理器、数字信号处理器 等芯片中。
触发器的逻辑原理
基本逻辑门触发器
利用与门、或门、非门等 基本逻辑门实现触发动作, 常见于数字电路中的寄存 器和触发器设计。
JK触发器
利用JK逻辑门实现触发动 作,具有置位、复位和翻 转功能,常见于时序逻辑 电路和微处理器中。
在数字信号处理中的应用
采样保持
触发器用于实现数字信号处理中的采样保持电路, 确保信号的稳定。
滤波器设计
触发器在数字信号处理中用于设计滤波器,以提 取有用信号并抑制噪声。
信号转换
触发器用于实现数字信号与模拟信号之间的转换, 便于信号传输和处理。
触发器等原理及应用概要课件

滥用风险
过度使用触发器可能导致系统变得复杂且难以维护,甚至 引发意外的副作用。
触发器的发展趋势
智能化
随着人工智能技术的发展,触发 器可能会具备更高级的智能功能,
如自适应调整、预测性分析等。
集成化
触发器可能会与其他数据库技术 (如存储过程、视图等)更加紧 密地集成,以提供更强大的数据
处理能力。
安全性增强
触发器在通信系统中的实例分析
总结词:特性分析
详细描述:通信系统中的触发器具有高速、 高精度、低噪声的特性,能够满足通信系统 对信号传输质量和稳定性的需求。此外,触 发器的同步工作方式也有助于保证通信系统
的可靠性和稳定性。
THANKS
触发器通过读取输入 信号的状态来决定输 出信号的状态。
触发器由双稳态电路 构成,可以在两个稳 定状态之间切换。
触发器的电路实现
触发器通常由逻辑门电路组成, 如AND门、OR门和NOT门等。
触发器的电路实现方式可以根 据具体需求进行选择和设计。
触发器的电路实现需要考虑功 耗、速度和稳定性等因素。
触发器的逻辑功能
触发器在数字逻辑电路中的实例分析
总结词:特性分析
详细描述:触发器具有明显的双稳态特性,即在没有外部激励的情况下,它能够保持一个稳定的输出状态。此外,触发器的 响应速度快、功耗低等优点使其在数字逻辑电路中得到广泛应用。
触发器在微处理器中的实例分析
总结词
微处理器中的触发器实例
详细描述
微处理器是计算机的核心部件,而触发器在微处理器中也有 着重要的作用。通过分析触发器在微处理器中的实例,可以 了解其在计算机体系结构中的应用。
触发器的分类
01
02
03
数据库之触发器讲义

触发器1、触发器的'本质':触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录、更改记录或者删除记录时,当事件发生时,才被自动地激活。
2、这样做带来的'功能':触发器可以用来对表实施复杂的完整性约束,保持数据的一致性,当触发器所保护的数据发生改变时,触发器会自动被激活,响应同时执行一定的操作(对其它相关表的操作),从而保证对数据的不完整性约束或不正确的修改。
触发器可以查询其它表,同时也可以执行复杂的T-SQL语句。
触发器和引发触发器执行的命令被当作一次事务处理,因此就具备了事务的所有特征。
注意:'事务具备什么特征?在触发器中的作用?'如果发现引起触发器执行的T-SQL语句执行了一个非法操作,比如关于其它表的相关性操作,发现数据丢失或需调用的数据不存在,那么就回滚到该事件执行前的SQL SERVER数据库状态。
3、触发器的作用:触发器可以对数据库进行级联修改。
需要说明的是:'触发器和约束的关系和区别'(1)一般来说,使用约束比使用触发器效率更高。
(2)同时,触发器可以完成比CHECK约束更复杂的限制。
说明:2.1 与CHECK约束不同,在触发器中可以引用其它的表。
2.2 触发器可以发现改变前后表中数据的不一致,并根据这些不同来进行相应的操作。
2.3 对于一个表不同的操作(INSERT、UPDATE、DELETE)可以采用不同的触发器,即使是对相同的语句也可以调用不同的触发器来完成不同的操作。
举例1:在签订一份订单时,货物的库存量应减少。
问?这应用了触发器的什么特征?CHECK约束能解决吗?举例2:正在进行整理的货物不能下订单。
问?这应用了触发器的什么特征?CHECK约束能解决吗?4、对触发器3种操作的分析:在SQL SERVER为每个触发器都创建了两个专用表:inserted表和deleted表。
这是两个逻辑表,由系统来维护,在触发执行时存在,在触发结束时消失。
触发器课件优质课件

(4-47)
§ 7.4 触发器逻辑功能的转换 1. JK触发器转换成D触发器
Q
Q
KC J
D CP 特选课件 (4-48)
2. JK触发器转换成T触发器
Q
Q
KC J
T CP
特选课件
(4-49)
3. D触发器转换成T´触发器
Q
Q
DC
CP
特选课件
(4-50)
§ 7.5 应用举例
例:四人抢答电路。四人参加比赛,每人 一个按钮,其中一人按下按钮后,相应的 指示灯亮。并且,其它按钮按下时不起作 用。
SD
特选课件
(4-11)
1、触发器是双稳态器件,只要令RD=SD=1, 触发器即保持原态。稳态情况下,两输 出互补。一般定义Q为触发器的状态。
2、在控制端加入负脉冲,可以使触发器状 态变化。SD端加入负脉冲,使Q=1,SD 称为“置位”或“置一”端。RD端加入 负脉冲,使Q=0,RD称为“复位”或 “清0”端。 特选课件
时序电路必 然具有记忆功 能,因而组成 时序电路的基 本单元是触发 器。
X .. Y
组合逻辑电路
... 存储功能 ...
特选课件
.Z
W
(4-56)
§7.6 寄存器
寄存器是计算机的主要部件之一, 它用来暂时存放数据或指令。一个触发 其只能寄存一位二进制数。
寄存器存取数据分为:并行和串行 两种。
数码寄存器和移位寄存器。
左移 寄存器
(a)
右移 寄存器
(b)
特选课件
双向 移位 寄存器
(c)
(4-59)
根据移位数 据的输入-输 出方式,又可 将它分为串行 输入-串行输 出、串行输入 -并行输出、 并行输入-串 行输出和并行 输入-并行输 出四种电路结 构:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Insert触发器
【例10-1】向tblAttendence表中插入一条考勤记 录时,先判断该员工编号是否存在,存在则插入, 不存在则给出提示信息:“该员工不存在,不能 有考勤信息!”
Use SouthSea Go CREATE TRIGGER trigger_tblAttendance ON tblAttendance For Insert AS if (select EmployeeID from inserted) not in (select EmployeeID from tblEmployee) begin raiserror('该员工不存在,不能有考勤信息!',16,1) rollback transaction end
6.DML触发器操作
(1)创建触发器 (2)验证触发器 (3)查看触发器 (4)修改触发器 (5)删除触发器
(1)创建触发器
注意事项
一个触发器只能对应一个表; 命名必须符合命名规则; CREATE TRIGGER 语句必须是批处理的第一个语句; 表的所有者具有创建触发器的缺省权限,表的所有者不能 把该权限传给其它用户; 触发器的SQL 语句可以参照其它数据库中的对象,但是, 触发器只能创建在当前数据库中; 触发器可以参照视图或临时表,但不能在视图或临时表上 创建触发器,而只能在基表或在创建视图的表上创建触发 器;
第十章 触发器
内容:
1. 案例分析 2. 触发器概述 3. 触发器的类型 4. 触发器的触发方式 5. 触发器的原理 6.DML触发器操作 7.DDL触发器操作 8.习题
1. 案例分析
现在要删除员工信息表中某个员工的信息、 或者向请假申请表中添加一条请假申请。 要考虑这样的一些情况:要删除的某位员 工在工资表、考勤表、请假申请表中都有 他的信息,那么我们做删除的时候应该要 级联删除这些对应的记录;想要添加的一 条请假申请的员工编号如果不存在,那么 应该拒绝添加等。
【例10-11】为SouthSea数据库创建一个触发器 SouthSea_safety,用于禁止用户删除表或更新表。
Use SouthSea Go If exists(select * from sys.triggers where parent_class=0 and name='SouthSea_safety') Drop trigger SouthSea_safety on database Go Create trigger SouthSea_safety On database For drop_table,alter_table As Begin Print '在删除表或修改表结构之前,请先禁止触发器SouthSea_safety! ' rollback tran end
(2)验证触发器
【例10-5】验证触发器 trigger_tblAttendance,向表tblAttendance 中插入一条记录。
Use SouthSea Go insert into tblAttendance (EmployeeID,BreachTime,RecorderID,Type,Date) values ('emp99','2008/6/6','emp1','正常','2008/6/6')
【例10-4】当更新tblLeave表中某条请假记录的 ApproverID(审核人编号)时,判断该审核人是否是该员 工所在部门的部门经理,如果不是,则禁止修改。
Use SouthSea Go CREATE TRIGGER trigger_tblLeave ON tblLeave for update AS if update(ApproverID) begin if (select ApproverId from inserted) not in (select managerId from tblDepartment,tblEmployee where (tblemployee.deptID= tblDepartment.deptID) and (employeeID=(select employeeID from deleted))) begin print '该审核人不是这个员工的经理,不能更新!' rollback transaction end end
(5)删除触发器
【例10-10】删除触发器 trigger_tblDepartment
Use SouthSea Go drop trigger trigger_tblDepartment
(6)禁止或启用触发器
禁止或启用触发器的语法格式为:
Alter table 表名 {ENABLE|DISABLE} trigger {ALL|trigger_name[,…n]}
delete触发器
【例10-2】删除tblDepartment表中某条部门记录 时,先判断tblEmployee表中是否有员工属于该部 门,若有,则将这些员工所属的部门替换成“新 部门”。
Use SouthSea Go CREATE TRIGGER trigger_tblDepartment ON tblDepartment after delete as if exists(select * from deleted,tblEmployee where deleted.DeptID=tblEmployee.DeptID) begin update tblEmployee set DeptID='新部门' where DeptID in (select DeptID from deleted) end
(4)修改触发器
【例10-9】修改由【例10-1】创建的触发器 trigger_tblAttendance,使得表tblAttendance中不 允许插入记录。
ALTER TRIGGER trigger_tblAttendance ON tblAttendance Instead of Insert AS raiserror('表tblAttendance中不允许插入记录!',16,1)
执行该语句的结果是:该审核人不是这个员工的经理,不能更新!
(3)查看触发器
系统存储过程: (1) sp_help 通过sp_help ,可以了解触发器的一般信息,如触发 器的名字、属性、类型、创建时间。其命令格式是: sp_help ‘触发器名’ (2) sp_helptext 通过sp_helptext 能够查看触发器的正文信息。其语法格 式为: sp_helptext ‘触发器名’ (3) sp_depends 通过sp_depends 能够查看指定触发器所引用的表或指 定的表涉及到的所有触发器,其语法形式为: sp_depends ‘触发器名字’
3. 触发器的类型
SQL Server中的触发器可以分为两类: DML触发器和DDL触发器。
4. 触发器的触发方式
SQL Server支持两种类型的触发方式:
AFTER触发器:只能在表上定义该类触发器, 并且只有执行某一操作(INSERT、UPDATE、 DELETE)之后,触发器才被触发。 INSTEAD OF触发器:该类触发器并不执行 INSERT、UPDATE、DELETE所定义的操作, 而仅是执行触发器本身。
当触发器触发时会去判断这个员工编号是否存在,若不存在则给 出提示信息,并回滚Insert操作。当然,如果插入一条存在的员工编号时, 如执行这条语句
【例10-6】验证触发器trigger_tblDepartment, 删除表tblDepartment中部门编号为'dep9'的部门。
Use SouthSea Go insert into tblDepartment values('dep9','市场部',null) go Insert into tblEmployee values('emp9','李小小','女','1982-819','lixx',0x82819,'lixx@','dep9','69856344','2004-76',default,null) go alter table tblEmployee drop constraint fk_DeptID go delete from tblDepartment where deptID='dep9' 在删除了'dep9'号部门后,在tblEmployee表中相关的记录都被级联更新了。
7.DDL触发器操作
(1)创建DDL触发器 (2)验证DDL触发器
(1)创建DDL触发器
创建DDL触发器的语法结构如下:
CREATE TRIGGER trigger_name ON {ALL SERVER|DATABASE} [WITH ENCRYPTION] { {{FOR|AFTER}{event_type|event_group}[,…n] AS Sql_statement […n] }
5. 触发器的原理
每个触发器被激活时,都会建立两 个临时表inserted 和 deleted:
执行insert时,被插入的语句会被放在 inserted临时表中 执行delete时,被删除的记录会被放在 deleted临时表中 执行update时,修改被分解为两部:
1. 删除原有的(deleted) 2. 添加修改后的(inserted)
【例10-7】验证触发器trigger_tblEmployee,将 员工编号为'emp6'的员工所在部门调换到'dep66' 号部门。