触发器和过程之间的区别

作者: Laura McKinney
创建日期: 1 四月 2021
更新日期: 17 可能 2024
Anonim
同步RS触发器的同步是什么意思,究竟是如何实现同步的
视频: 同步RS触发器的同步是什么意思,究竟是如何实现同步的

内容


触发器和过程是高级SQL的组件。触发器和过程都在执行时执行指定的任务。触发器和过程之间的根本区别在于 触发 在事件发生时自动执行,而 程序 在显式调用它时执行。

让我们借助下面显示的比较表来讨论触发器和过程之间的更多区别。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较基础扳机程序
基本的 它们在发生指定事件时自动执行。它们可以在需要时执行。
呼唤无法在过程内部调用触发器。但是,您可以在触发器内调用过程。
参数 我们不能将参数传递给触发器。我们可以将参数传递给过程。
返回触发器从不执行返回值。过程可能在执行时返回值。

触发器的定义

触发器就像一个过程,在发生指定事件时会自动执行。像该过程一样,无需显式调用触发器。创建触发器,以响应某些指定事件的发生执行某些任务。

可以响应于 DDL 语句(DELETE,INSERT或UPDATE),或 DML 语句(DELETE,INSERT或UPDATE)或某些数据库操作(SERVERERROR,LOGON,LOGOFF,STARTUP或SHUTDOWN)。

触发器包含三个组件,如下所述:

  • 事件:事件是某些事件的发生,将导致执行触发器。可以命令触发器执行 之前 事件发生或可能被命令执行 事件的执行。
  • 条件:这是触发器的可选部分。如果未提及,触发器将在指定事件发生时执行。如果指定了条件,则它将检查规则以确定是否应执行触发器。
  • 行动:操作是一组SQL语句,将在执行触发器时执行。

创建事件的一般形式如下:


创建触发器 之前/之后 条件行动;

这里,条件是可选的。

程序定义

该过程可以视为一个程序单元,可以创建执行某些任务并将其存储在数据库中。它们在需要时由SQL语句调用。过程类似于开发人员定义的用户定义函数。可以使用以下方法调用过程 呼叫 要么 执行.

该过程在以下情况下很有用:

  • 如果其他几个应用程序都需要该过程,则可以将该过程存储在服务器上,以便任何应用程序都可以调用它们。这将减少将过程从一个数据库复制到另一个数据库的工作量,并改善软件的模块化。
  • 由于该过程正在服务器上执行,因此将减少数据传输并降低通信成本。
  • 该过程可用于检查超出触发能力之外的复杂约束。

让我们讨论创建过程的一般形式:

建立程序 ()退货 ;

在这里,参数和本地声明是可选的。仅在需要时才提及它们。下面的语句描述了过程的调用。

呼叫 () ;

  1. 触发器和过程之间的主要区别在于,触发器是一个在事件发生时自动被调用的语句。另一方面,该过程在需要时被调用。
  2. 可以在触发器内部定义过程。但是,永远不会在过程内部定义触发器,因为必须在发生任何事件时自动调用该触发器。
  3. 我们可以将参数传递给过程,但是我们不能传递参数来触发,因为它不会被我们调用。
  4. 过程可以返回参数值或代码,但是触发器不能。

结论:

触发器很有用,但是如果存在触发器,则可以避免使用触发器,因为它会增加数据的复杂性。有时触发器也可以通过适当的过程代替。