Recommandé, 2024

Choix De L'Éditeur

Différence entre déclencheur et procédure

Le déclencheur et la procédure sont des composants de SQL avancé. Le déclencheur et la procédure exécutent tous deux une tâche spécifiée lors de leur exécution. La différence fondamentale entre le déclencheur et la procédure réside dans le fait que le déclencheur s'exécute automatiquement lors de la survenue d'un événement alors que la procédure est exécutée lorsqu'elle est explicitement appelée.

Laissez-nous discuter de quelques autres différences entre Trigger et Procedure à l’aide du tableau de comparaison présenté ci-dessous.

Tableau de comparaison

Base de comparaisonDéclencheursProcédures
De baseIls sont automatiquement exécutés à la survenance de l'événement spécifié.Ils peuvent être exécutés à tout moment.
AppelLes déclencheurs ne peuvent pas être appelés dans une procédure.Mais, vous pouvez appeler une procédure dans un déclencheur.
ParamètreNous ne pouvons pas transmettre de paramètres à des déclencheurs.Nous pouvons transmettre des paramètres aux procédures.
RevenirLe déclencheur ne renvoie jamais de valeur à l'exécution.La procédure peut renvoyer valeur / s lors de l'exécution.

Définition du déclencheur

Le déclencheur est semblable à une procédure qui est exécutée automatiquement à la survenance d'un événement spécifié. A l'instar de la procédure, il n'est pas nécessaire d'appeler explicitement le déclencheur. Les déclencheurs sont créés pour effectuer certaines tâches en réponse à l'occurrence d'un événement spécifié.

Le déclencheur peut être appelé en réponse aux instructions DDL (DELETE, INSERT ou UPDATE), DML (DELETE, INSERT ou UPDATE) ou à certaines opérations de base de données (SERVERERROR, LOGON, LOGOFF, STARTUP ou SHUTDOWN).

Le déclencheur est constitué de trois composants, comme indiqué ci-dessous:

  • Evénement : Un événement est l'occurrence d'un incident qui entraînera l'exécution du déclencheur. Le déclencheur peut être commandé pour exécuter AVANT qu'un événement se produise ou pour être exécuté APRÈS l'exécution d'un événement.
  • Condition : C'est une partie optionnelle du déclencheur. Si ce n'est pas mentionné, le déclencheur sera exécuté lorsque l'événement spécifié se produira. Si la condition est spécifiée, il vérifiera les règles pour déterminer si le déclencheur doit être exécuté.
  • Action : Action est un ensemble d'instructions SQL qui seront exécutées lors de l'exécution du déclencheur.

La forme générale de création d'un événement est discutée ci-dessous:

 CREATE TRIGGER AVANT / APRES LA CONDITION ACTION; 

Ici, la condition est optionnelle.

Définition des procédures

La procédure peut être considérée comme une unité de programme, créée pour effectuer une tâche et stockée dans la base de données. Ils sont appelés par l'instruction SQL chaque fois que nécessaire. Les procédures sont similaires aux fonctions définies par l'utilisateur définies par les développeurs. Les procédures peuvent être appelées en utilisant CALL ou EXECUTE .

Les procédures sont utiles dans les situations suivantes:

  • Si la procédure est requise par plusieurs autres applications, elle peut être stockée sur le serveur afin de pouvoir être appelée par n'importe quelle application. Cela réduira les efforts de duplication de la procédure d'une base de données à une autre et améliorera également la modularité du logiciel.
  • L'exécution de la procédure sur le serveur réduira le transfert de données et les coûts de communication.
  • Les procédures peuvent être utilisées pour vérifier les contraintes complexes qui dépassent le pouvoir de déclenchement.

Laissez-nous discuter de la forme générale de créer une procédure:

 CREATE PROCEDURE () RETURNS; 

Ici, les paramètres et les déclarations locales sont optionnels. Ils ne sont mentionnés que lorsqu'ils sont requis. La déclaration ci-dessous décrit l’appel des procédures.

 APPEL () ; 

Principales différences entre le déclencheur et la procédure

  1. La principale différence entre le déclencheur et la procédure est qu'un déclencheur est une instruction invoquée automatiquement lorsqu'un événement se produit. D'autre part, la procédure est invoquée chaque fois que cela est requis.
  2. On peut définir une procédure à l'intérieur d'un déclencheur. Cependant, un déclencheur n'est jamais défini dans une procédure car il doit être appelé automatiquement à la survenance de tout événement.
  3. Nous pouvons transmettre des paramètres à des procédures, mais nous ne pouvons pas transmettre de paramètres à déclencher car ils ne sont pas invoqués.
  4. Une procédure peut renvoyer des valeurs de paramètre ou du code, mais un déclencheur ne le peut pas.

Conclusion:

Les déclencheurs sont utiles, mais ils sont évités s’il existe une alternative, car cela augmente la complexité des données. Parfois, les déclencheurs sont également remplacés par une procédure appropriée.

Top