第10章-销售管理数据库中触发器应用-课件

彩虹网

SQL Server 2005数据库应用技术数据库应用技术清华大学出版社清华大学出版社第十章第十章 销售管理数据库中触销售管理数据库中触发器的应用发器的应用技能目标技能目标u理解触发器的概念、功能和类型;理解触发器的概念、功能和类型;u学会根据实际开发销售管理数据库中的触发器,以完成系学会根据实际开发销售管理数据库中的触发器,以完成系统整体设计的目的统整体设计的目的SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社知识目标知识目标u了解触发器的概念和分类;了解触发器的概念和分类;u掌握创建、执行、修改和删除触发器的方法;掌握创建、执行、修改和删除触发器的方法;u掌握掌握INSERTEDINSERTED表和表和DELETEDELETE表的使用;表的使用;u掌握掌握DMLDML触发器的类型;触发器的类型;u掌握触发器的禁用和启动掌握触发器的禁用和启动 SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社触发器的作用触发器的作用触发器通常可以完成一定的业务规则,用于触发器通常可以完成一定的业务规则,用于SQL SQL ServerServer约束、默认值和规则的完整性检查,还可以完成难约束、默认值和规则的完整性检查,还可以完成难以用普通约束实现的复杂功能的限制。

以用普通约束实现的复杂功能的限制SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社触发器的分类触发器的分类 uDMLDML触发器触发器当数据库中发生数据操作语言当数据库中发生数据操作语言 (DML) 事件时将调用事件时将调用 DML 触发器触发器 uDDL DDL 触发器触发器在在 CREATE、、ALTER、、DROP 和其他和其他 DDL 语句上操作时语句上操作时发生的触发器称为发生的触发器称为DDL 触发器DDL触发器是触发器是SQL Server 2019新增的功能新增的功能 SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社DMLDML触发器的分类触发器的分类uAFTER AFTER 触发器:在数据修改完成后,触发器被激活执行顺序如触发器:在数据修改完成后,触发器被激活执行顺序如下下数据表约束检查数据表约束检查 → 修改表中的数据修改表中的数据 → 激活触发器激活触发器 uINSTEAD OFINSTEAD OF触发器:这类触发器会取代原来要进行的操作,触发器:这类触发器会取代原来要进行的操作,在数据更改之前发生,数据的如何更改完全取决于触发器在数据更改之前发生,数据的如何更改完全取决于触发器的内容,执行顺序如下。

的内容,执行顺序如下激活触发器激活触发器 → 若触发器涉及数据更改,则检查表约束若触发器涉及数据更改,则检查表约束uCLR CLR 触发器:触发器:CLR CLR 触发器将执行在托管代码中编写的方法,而不触发器将执行在托管代码中编写的方法,而不用执行用执行 Transact-SQL Transact-SQL 存储过程存储过程 SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社DMLDML触发器触发器 创建触发器的语法格式如下创建触发器的语法格式如下CREATE TRIGGER 触发器名触发器名 ON 表名或视图名表名或视图名 {FOR | AFTER | INSTEAD OF }{INSERT | UPDAT E | DELETE }

WITH ENCRYPTION

AS

IF UPDATE (列名列名1)

{AND | OR } UPDATE(列名列名2) sql_statements SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社INSERTEDINSERTED表和表和DELETEDDELETED表表 操作操作类类型型INSERTEDINSERTED表表DELETEDDELETED表表INSERT插入的插入的记录记录不不创创建建DELETE不不创创建建删删除的除的记录记录UPDATE修改后的修改后的记记录录修改前的修改前的记记录录SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社创建创建DMLDML触发器触发器 1 1、、INSERTINSERT触发器触发器INSERT触发器通常被用来验证被触发器监控的字段中的数据满触发器通常被用来验证被触发器监控的字段中的数据满足要求的标准,以确保数据完整性。

足要求的标准,以确保数据完整性例例】】创建名为创建名为reminderreminder的触发器,当用户向部门的触发器,当用户向部门departmentdepartment表中插入一条部门记录时,向客户端发送一条表中插入一条部门记录时,向客户端发送一条提示消息提示消息““插入一条记录!插入一条记录!””2 2、、DELETEDELETE触发器触发器【练习】在【练习】在employeeemployee表上,创建一个的触发器,其功能为:表上,创建一个的触发器,其功能为:当对当对employeeemployee表进行删除操作时,首先检查要删除的员工表进行删除操作时,首先检查要删除的员工是否为人事部门的员工,如果不是的话,可以删除该员工是否为人事部门的员工,如果不是的话,可以删除该员工的消息;否则撤销此删除,并显示无法删除的信息的消息;否则撤销此删除,并显示无法删除的信息 SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社创建创建DMLDML触发器(续)触发器(续)3 3、、UPDATEUPDATE触发器触发器当在定义有触发器的表上执行当在定义有触发器的表上执行UPDATEUPDATE语句时,原始行语句时,原始行被移入到被移入到DELETEDDELETED表,更新行被移入到表,更新行被移入到INSERTEDINSERTED表。

表 【例】【例】 创建了一个修改触发器,防止用户修改创建了一个修改触发器,防止用户修改employee表的员表的员工的部门编号工的部门编号 SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社修改触发器修改触发器 u使用使用Management Studio Management Studio u使用使用ALTER TRIGGERALTER TRIGGER语句语句 语法格式如下语法格式如下ALTER TRIGGER 要修改的触发器名要修改的触发器名 ON 表名或视图名表名或视图名

WITH ENCRYPTION

( FOR | AFTER | INSTEAD OF ) { } ASsql_statements SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社DDLDDL触发器触发器 DDL DDL 触发器常用于如下的情况触发器常用于如下的情况 u防止对数据库架构进行某些更改。

防止对数据库架构进行某些更改u以响应数据库架构中的更改以响应数据库架构中的更改 u记录数据库架构中的更改或事件记录数据库架构中的更改或事件 u创建创建DDLDDL触发器的语法格式如下触发器的语法格式如下 CREATE TRIGGER 触发器名触发器名 ON { ALL SERVER | DATABASE }

WITH ENCRYPTION

{ FOR | AFTER } { DDL事件事件} AS sql_statement SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社查看触发器查看触发器 使用系统存储过程使用系统存储过程sp_helpsp_help、、sp_helptextsp_helptext和和sp_depentssp_depents分别分别查看触发器的不同信息查看触发器的不同信息usp_ help :显示触发器的所有者和创建时间:显示触发器的所有者和创建时间usp_ helptext:显示触发器的源代码:显示触发器的源代码usp_depends:显示该触发器参考的对象清单:显示该触发器参考的对象清单 SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社删除触发器删除触发器 u使用使用Management StudioManagement Studiou使用使用DROP TRIGGERDROP TRIGGER命令。

命令 语法格式如下语法格式如下DROP TRIGGER trigger_name ON { DATABASE | ALL SERVER } 【例】删除【例】删除department_undeletedepartment_undelete触发器 SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社禁止或启用触发器禁止或启用触发器 u禁用触发器禁用触发器当不再需要某个触发器时,可将其禁用或删除语法格当不再需要某个触发器时,可将其禁用或删除语法格式如下DISABLE TRIGGER {ALL| 触发器名触发器名}ON { object_name | DATABASE | ALL SERVER } u 启用触发器启用触发器 语法格式如下语法格式如下ENABLE TRIGGER {ALL|触发器名触发器名}ON { object_name | DATABASE | ALL SERVER } SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社触发器的应用触发器的应用 【练习】在销售管理数据中,当员工接收到订单时,也就意【练习】在销售管理数据中,当员工接收到订单时,也就意味对应的商品的已销售量的增加。

在味对应的商品的已销售量的增加在Sell_OrderSell_Order表上创建表上创建一个触发器,实现在订单表上添加一条记录时,对应的商一个触发器,实现在订单表上添加一条记录时,对应的商品在商品表的已销售量数据同时更新品在商品表的已销售量数据同时更新练习】【练习】 在在Sell_orderSell_order表上创建了一个修改触发器,该触表上创建了一个修改触发器,该触发器防止用户修改商品的订单数量过大,如果订单数量的发器防止用户修改商品的订单数量过大,如果订单数量的变化超过变化超过100100时给出错误提示,并取消修改操作时给出错误提示,并取消修改操作SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社课后任务课后任务独自完成课后实训独自完成课后实训SQL Server 2019数据库应用技术数据库应用技术清华大学出版社清华大学出版社。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。