9.1触发器概述 (课件)-《网站数据库应用技术-SQL Server》同步教学(电子工业版)

2024-07-11
| 16页
| 40人阅读
| 1人下载
普通

内容正文:

触发器操作 第九章 01 触发器概述 触发器概述 01 触发器基本知识 触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效,触发器被调用时自动执行INSERT、UPDATE、DELETE 语句和SELECT 语句,实现表间的数据完整性和复杂的业务规则。 触发器的功能: ①强化约束:触发器能够实现比 CHECK语句更为复杂的约束。 ②跟踪变化:触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。 触发器概述 01 触发器基本知识 ③级联运行:触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的相关内容。例如,某个表上的触发器中包含对另外一个表的数据操作(如插入、更新、删除),而该操作又导致该表上触发器被触发。 ④存储过程的调用:为了响应数据库更新,触发器可以调用一个或多个存储过程,甚至可以通过外部过程的调用而在DBMS(数据库管理系统)本身之外进行操作。 触发器概述 01 触发器类型 DDL触发器 DDL触发器是一种特殊的触发器,当服务器或数据库中发生数据定义语言(DDL)事件时将调用DDL触发器。DDL触发器可以用于数据库中执行管理任务,如审核及规范数据库操作。 像常规触发器一样,DDL触发器将激发存储过程以响应事件,但与DML触发器不同的是,它们不会为响应针对表或视图的INSERT、UPDATE或 DELETE语句而激发。相反,它们会为响应多种数据定义语言(DDL)语句而激发,这些语句主要是以CREATE、ALTER和 DROP开头的语句。 触发器概述 01 触发器类型 DML触发器 DML触发器是当数据库服务器中发生数据操作语言事件时要执行的操作。DML事件包括对表或视图发出的插入、修改及删除操作。DML触发器用于在数据被修改时强制执行业务规则,以及扩展SQL Server约束、默认值和规则的完整性检查逻辑。 DML触发器可以查询其他表,还可以包含复杂的T-SQL 语句,将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到错误〈如磁盘空间不足),则整个事务自动回滚。 触发器概述 01 inserted表和deleted表 每个触发器有两个特殊的表:inserted表和 deleted表。这两个表都是逻辑表,并且这两个表是由系统管理的。inserted表和 deleted 表存储在内存中,而不是存储在数据库中,因此不允许用户直接对其进行修改。inserted表和 deleted表在结构上与该触发器作用的表相同。这两个表是动态驻留在内存中的,当触发器工作完成,这两个表也就被删除了。这两个表主要保存因用户操作而被影响到的原数据值或新数据值。这两个表是只读的,即用户不能向这两个表写入内容,但可以在触发器执行过程中引用这两个表中的数据。 触发器概述 01 inserted表和deleted表 deleted 表用于存储DELETE 和 UPDATE语句所影响的行的副本。在执行DELETE或UPDATE语句时,行从触发器表中删除,并存放到deleted表中。deleted表和触发器表通常没有相同的行。 inserted表用于存储INSERT和UPDATE语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到inserted 表和触发器表中。inserted表中的行是触发器表中新行的副本。 触发器概述 01 inserted表和deleted表 (1)INSERT触发器。对一个定义了INSERT类型触发器的表来说,一旦对该表执行了INSERT 操作,那么对于向该表插入的所有行来说,都有一个相应的副本存放到inserted 表中。inserted表就是用来存储向原表中插入的内容的。 (2)DELETE触发器。对一个定义了DELETE类型触发器的表来说,一旦对该表执行了删除操作,则把所有的删除行都存放至删除表中。这样做的目的是:一旦触发器遇到了强迫它中止的语句被执行,删除的那些行可以从deleted表中得以恢复。 触发器概述 01 UPDATE触发器 修改操作包括两部分:先将更新的内容去掉,然后将新值插入。因此,对一个定义了UPDATE类型触发器的表来说,当报告会UPDATE 操作时,在deleted表中存放了原有值,然后在 inserted表中存放新值。 02 使用SSMS管理触发器 使用SSMS管理触发器 02 创建触发器 【任务2-1】为WebShop数据库的Users表中创建一个在添加记录后显示提示信息的触发器tr_notify,并添加一条用户记录( 'trigger','trigger' '普通', trigger')验证触发器的执行。 (1)启动SQL Server Management Studio,在“对象资源管理器”中依次展开【数据库】节点、【WebShop】节点和表节点。 (2)展开【db0.Users】表,右击【触发器】,在弹出的快捷菜单中选择【新建触发器】选项,如图9-5所示。 使用SSMS管理触发器 02 创建触发器 (4)在右边打开的查询窗口中会显示“触发器”模板,输入触发器的文本后执行创建触发器语句。语句成功执行后,则创建好触发器。 触发器tr_notify的脚本如下: 使用SSMS管理触发器 02 创建触发器 (4)使用INSERT语句向Users表中添加一条记录,验证触发器的功能。 该语句执行后,消息框中的显示结果如图9-6所示。 使用SSMS管理触发器 02 禁用、修改和删除触发器 【任务2-2】禁用触发器tr_notify. (1)启动SQL Server Management Studio,在“对象资源管理器”中依次展开【数据库】节点、【 WebShop】节点、表节点。 (2)右击【tr_notify】,在弹出的快捷菜单中选择【禁用】选项,如图9-7所示。 使用SSMS管理触发器 02 禁用、修改和删除触发器 (3)打开“禁用触发器”对话框,单击【关闭】按钮,如图9-8所示,即可禁用选定的触发器,被禁用的触发器的图标会变成 ,请读者注意分辨。 $$

资源预览图

9.1触发器概述 (课件)-《网站数据库应用技术-SQL Server》同步教学(电子工业版)
1
9.1触发器概述 (课件)-《网站数据库应用技术-SQL Server》同步教学(电子工业版)
2
9.1触发器概述 (课件)-《网站数据库应用技术-SQL Server》同步教学(电子工业版)
3
9.1触发器概述 (课件)-《网站数据库应用技术-SQL Server》同步教学(电子工业版)
4
9.1触发器概述 (课件)-《网站数据库应用技术-SQL Server》同步教学(电子工业版)
5
9.1触发器概述 (课件)-《网站数据库应用技术-SQL Server》同步教学(电子工业版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。