网站的优化与推广,海曙网站建设哪家好,wordpress管理员账号,阿里云部署网站在上面几节我们介绍了一般意义的存储过程#xff0c;即用户自定义的存储过程和系统存储过程。本节将介绍一种特殊的存储过程#xff0c;即触发器。在余下各节中我们将对触发器的概念、作用以及对其的使用方法作详尽介绍#xff0c;使读者了解如何定义触发器#xff0c;创建… 在上面几节我们介绍了一般意义的存储过程即用户自定义的存储过程和系统存储过程。本节将介绍一种特殊的存储过程即触发器。在余下各节中我们将对触发器的概念、作用以及对其的使用方法作详尽介绍使读者了解如何定义触发器创建和使用各种不同复杂程度的触发器。 12.5.1 触发器的概念及作用 触发器是一种特殊类型的存储过程它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时SQL Server 就会自动执行触发器所定义的SQL 语句从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。 触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外触发器还有其它许多不同的功能 1 强化约束Enforce restriction 触发器能够实现比CHECK 语句更为复杂的约束。 2 跟踪变化Auditing changes 触发器可以侦测数据库内的操作从而不允许数据库中未经许可的指定更新和变化。 3 级联运行Cascaded operation。 触发器可以侦测数据库内的操作并自动地级联影响整个数据库的各项内容。例如某个表上的触发器中包含有对另外一个表的数据操作如删除更新插入而该操作又导致该表上触发器被触发。 4 存储过程的调用Stored procedure invocation。 为了响应数据库更新触发器可以调用一个或多个存储过程甚至可以通过外部过程的调用而在DBMS 数据库管理系统本身之外进行操作。 由此可见触发器可以解决高级形式的业务规则或复杂行为限制以及实现定制记录等一些方面的问题。例如触发器能够找出某一表在数据修改前后状态发生的差异并根据这种差异执行一定的处理。此外一个表的同一类型INSERT、 UPDATE、 DELETE的多个触发器能够对同一种数据操作采取多种不同的处理。 总体而言触发器性能通常比较低。当运行触发器时系统处理的大部分时间花费在参照其它表的这一处理上因为这些表既不在内存中也不在数据库设备上而删除表和插入表总是位于内存中。可见触发器所参照的其它表的位置决定了操作要花费的时间长短。 12.5.2 触发器的种类 SQL Server 2000 支持两种类型的触发器AFTER 触发器和INSTEAD OF 触发器。其中AFTER 触发器即为SQL Server 2000 版本以前所介绍的触发器。该类型触发器要求只有执行某一操作INSERT UPDATE DELETE 之后触发器才被触发且只能在表上定义。可以为针对表的同一操作定义多个触发器。对于AFTER 触发器可以定义哪一个触发器被最先触发哪一个被最后触发通常使用系统过程sp_settriggerorder 来完成此任务。 INSTEAD OF 触发器表示并不执行其所定义的操作INSERT、 UPDATE、 DELETE而仅是执行触发器本身。既可在表上定义INSTEAD OF 触发器也可以在视图上定义INSTEAD OF 触发器但对同一操作只能定义一个INSTEAD OF 触发器。 转载于:https://www.cnblogs.com/Athrun/archive/2007/07/27/833321.html