トリガーとプロシージャの違い

著者: Laura McKinney
作成日: 1 4月 2021
更新日: 13 5月 2024
Anonim
SQL:削除と切り捨てと削除
ビデオ: SQL:削除と切り捨てと削除

コンテンツ


トリガーとプロシージャは、拡張SQLのコンポーネントです。トリガーとプロシージャは両方とも、実行時に指定されたタスクを実行します。トリガーとプロシージャの基本的な違いは、 引き金 イベントの発生時に自動的に実行されますが、 手順 明示的に呼び出されたときに実行されます。

以下に示す比較チャートを使用して、トリガーと手順のいくつかの違いについて説明します。

  1. 比較表
  2. 定義
  3. 主な違い
  4. 結論

比較表

比較の根拠トリガー手続き
ベーシック これらは、指定されたイベントの発生時に自動的に実行されます。必要なときにいつでも実行できます。
呼び出し中トリガーをプロシージャ内で呼び出すことはできません。ただし、トリガー内でプロシージャを呼び出すことができます。
パラメータ トリガーにパラメーターを渡すことはできません。パラメータをプロシージャに渡すことができます。
戻るトリガーは実行時に値を返しません。プロシージャは、実行時に値を返す場合があります。

トリガーの定義

トリガーは、指定されたイベントの発生時に自動的に実行されるプロシージャのようなものです。手順と同様に、トリガーを明示的に呼び出す必要はありません。トリガーは、指定されたイベントの発生に応じてタスクを実行するために作成されます。

トリガーは、 DDL ステートメント(DELETE、INSERT、またはUPDATE)、または DML ステートメント(DELETE、INSERT、またはUPDATE)または、一部のデータベース操作(SERVERERROR、LOGON、LOGOFF、STARTUP、またはSHUTDOWN)。


トリガーは、以下で説明する3つのコンポーネントで構成されます。

  • イベント:イベントは、トリガーの実行を引き起こす何らかのインシデントの発生です。トリガーは、次のいずれかを実行するように注文できます。 イベントが発生するか、実行されるように順序付けられます イベントの実行。
  • 調子:トリガーのオプション部分です。指定されていない場合、指定されたイベントが発生するとトリガーが実行されます。条件が指定されている場合、ルールをチェックして、トリガーを実行する必要があるかどうかを判断します。
  • アクション:アクションは、トリガーの実行時に実行される一連のSQLステートメントです。

イベントの作成の一般的な形式を以下に説明します。

トリガーの作成 ビフォアーアフター 条件アクション;

ここで、条件はオプションです。

手順の定義

プロシージャは、プログラム単位として取得でき、何らかのタスクを実行するために作成され、データベースに保存されます。これらは、必要なときにSQLステートメントによって呼び出されます。プロシージャは、開発者が定義するユーザー定義関数に似ています。プロシージャは次を使用して呼び出すことができます コール または 実行.

この手順は、次の状況で役立ちます。

  • プロシージャが他の複数のアプリケーションで必要な場合は、サーバーに保存して、任意のアプリケーションで呼び出せるようにすることができます。あるデータベースから別のデータベースへの手順の複製の労力を削減し、ソフトウェアのモジュール性も向上します。
  • プロシージャはサーバーで実行されるため、データ転送が削減され、通信コストも削減されます。
  • この手順を使用して、トリガーを超える複雑な制約を確認できます。

プロシージャを作成する一般的な形式について説明します。


プロシージャの作成 ()返品 ;

ここでは、パラメーターとローカル宣言はオプションです。必要な場合にのみ言及されます。以下のステートメントは、プロシージャの呼び出しについて説明しています。

コール () ;

  1. トリガーとプロシージャの主な違いは、トリガーはイベントが発生したときに自動的に呼び出されるステートメントであるということです。一方、プロシージャは必要なときに呼び出されます。
  2. トリガー内でプロシージャを定義できます。ただし、トリガーはイベントの発生時に自動的に起動する必要があるため、プロシージャ内でトリガーが定義されることはありません。
  3. プロシージャにパラメーターを渡すことはできますが、トリガーではないため、トリガーにパラメーターを渡すことはできません。
  4. プロシージャはパラメータ値またはコードを返すことができますが、トリガーは返すことができません。

結論:

トリガーは便利ですが、データの複雑さを増すため、代替手段が存在する場合は回避されます。トリガーは、適切な手順によって代替されることもあります。