触发器和过程之间的区别
内容
触发器和过程是高级SQL的组件。触发器和过程都在执行时执行指定的任务。触发器和过程之间的根本区别在于 触发 在事件发生时自动执行,而 程序 在显式调用它时执行。
让我们借助下面显示的比较表来讨论触发器和过程之间的更多区别。
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较基础 | 扳机 | 程序 |
---|---|---|
基本的 | 它们在发生指定事件时自动执行。 | 它们可以在需要时执行。 |
呼唤 | 无法在过程内部调用触发器。 | 但是,您可以在触发器内调用过程。 |
参数 | 我们不能将参数传递给触发器。 | 我们可以将参数传递给过程。 |
返回 | 触发器从不执行返回值。 | 过程可能在执行时返回值。 |
触发器的定义
触发器就像一个过程,在发生指定事件时会自动执行。像该过程一样,无需显式调用触发器。创建触发器,以响应某些指定事件的发生执行某些任务。
可以响应于 DDL 语句(DELETE,INSERT或UPDATE),或 DML 语句(DELETE,INSERT或UPDATE)或某些数据库操作(SERVERERROR,LOGON,LOGOFF,STARTUP或SHUTDOWN)。
触发器包含三个组件,如下所述:
- 事件:事件是某些事件的发生,将导致执行触发器。可以命令触发器执行 之前 事件发生或可能被命令执行 后 事件的执行。
- 条件:这是触发器的可选部分。如果未提及,触发器将在指定事件发生时执行。如果指定了条件,则它将检查规则以确定是否应执行触发器。
- 行动:操作是一组SQL语句,将在执行触发器时执行。
创建事件的一般形式如下:
创建触发器 这里,条件是可选的。 该过程可以视为一个程序单元,可以创建执行某些任务并将其存储在数据库中。它们在需要时由SQL语句调用。过程类似于开发人员定义的用户定义函数。可以使用以下方法调用过程 呼叫 要么 执行. 该过程在以下情况下很有用: 让我们讨论创建过程的一般形式: 建立程序 在这里,参数和本地声明是可选的。仅在需要时才提及它们。下面的语句描述了过程的调用。 呼叫 触发器很有用,但是如果存在触发器,则可以避免使用触发器,因为它会增加数据的复杂性。有时触发器也可以通过适当的过程代替。程序定义
结论: