数据库中存储过程和触发器有什么不一样?

存储过程和触发器都是数据库中很是重要的知识,接下来将在文章中经过许多方面来比较这二者之间的不一样,具备必定的参考做用但愿对你们有所帮助。

数据库中存储过程和触发器有什么不一样?数据库中存储过程和触发器有什么不一样?

存储过程和触发器都是数据库中很是重要的知识,接下来将在文章中经过许多方面来比较这二者之间的不一样,具备必定的参考做用但愿对你们有所帮助。数据库

 

什么是触发器?

 

触发器是数据库中的表/视图发生某些特定事件时自动执行的过程(代码段)。触发器主要用于维护数据库中的完整性。触发器还用于实施业务规则,审核数据库中的更改以及复制数据。最多见的触发器是在操做数据时触发数据操做语言(DML)触发器。某些数据库系统支持非数据触发器,这些触发器在发生数据定义语言(DDL)事件时触发。这些触发器能够特别用于审计。Oracle数据库系统支持模式级触发器3d

什么是存储过程?

存储过程是能够由访问关系数据库的应用程序。一般,存储过程用做验证数据和控制对数据库的访问。若是某些数据处理操做须要执行多个SQL语句,则此类操做将做为存储过程实现。调用存储过程时,必须使用CALL或EXECUTE语句。存储过程能够返回结果(例如SELECT语句的结果)。这些结果能够由其余存储过程或应用程序使用。用于编写存储过程的语言一般支持控制结构,例如if,while,for等。根据所使用的数据库系统,可使用多种语言来实现存储过程blog

存储过程和触发器的区别

(1)存储过程是一组已建立并存储在数据库中的SQL语句。因此咱们能够一遍又一遍地重用代码。而触发器是一种特殊的不是由用户直接调用存储过程,建立触发器时,会定义在针对特定表或列进行特定类型的数据修改时触发。事件

(2)用户可使用Execute或Exec语句来直接调用或执行存储过程,而没法直接调用或执行触发器。触发相关事件时,只会自动执行触发器。事务

(3)存储过程能够采用输入参数,而触发器中不能将参数做为输入咱们不能将参数做为输入传递给触发器。it

(4)存储过程能够返回零或n值,触发器没法返回值。table

(5)咱们能够在存储过程当中使用事务,触发器内不容许进行事务处理class

(6)存储过程一般用于执行用户指定的任务,触发器一般用于审计工做程序

相关文章
相关标签/搜索