SQL中存储过程和触发器的区别
存储过程是用PL/SQL编写的代码片段,用于执行特定任务。存储过程可以由用户显式调用。它就像一个Java程序,可以接收参数作为输入,然后进行一些处理并返回结果。
另一方面,触发器是一个存储过程,当发生各种事件(例如更新、插入、删除)时会自动运行。触发器更像是一个事件处理程序,它们在特定事件发生时运行。触发器不能接收输入,也不能返回结果。
序号 | 关键点 | 触发器 | 存储过程 |
---|---|---|---|
1 | 基本概念 | 触发器是一个存储过程,当发生各种事件(例如更新、插入、删除)时会自动运行 | 存储过程是用PL/SQL编写的代码片段,用于执行特定任务 |
2 | 运行机制 | 它可以根据事件自动执行 | 它可以由用户显式调用 |
3 | 参数 | 它不能接收参数作为输入 | 它可以接收参数作为输入 |
4 | 事务语句 | 我们不能在触发器内使用事务语句 | 我们可以在存储过程中使用事务语句,例如begin transaction, commit transaction和rollback |
5 | 返回值 | 触发器不能返回结果 | 存储过程可以返回结果 |
广告