Anbefalet, 2024

Redaktørens Valg

Forskel mellem Trigger og Procedure

Trigger og Procedure er komponent af avanceret SQL. Trigger og Procedure udfører begge en bestemt opgave på deres udførelse. Den grundlæggende forskel mellem Trigger og Procedure er, at Trigger udføres automatisk på begivenheder af en begivenhed, mens proceduren udføres, når den udtrykkeligt påberåbes.

Lad os diskutere nogle flere forskelle mellem Trigger og Procedure ved hjælp af et sammenligningskort vist nedenfor.

Sammenligningstabel

Grundlag for sammenligningtriggersProcedurer
GrundlæggendeDe udføres automatisk ved forekomst af specificeret begivenhed.De kan udføres, når det er nødvendigt.
RingerUdløsere kan ikke kaldes i en procedure.Men du kan kalde en procedure inde i en trigger.
ParameterVi kan ikke videresende parametre til udløsere.Vi kan videresende parametre til procedurer.
Vend tilbageTrigger returnerer aldrig værdien ved udførelse.Procedure kan returnere værdi / s ved udførelse.

Definition af Trigger

Udløseren er som en procedure, der udføres automatisk ved forekomsten af ​​en bestemt begivenhed. Ligesom proceduren behøver udløseren ikke at blive kaldt eksplicit. Udløsere er oprettet for at udføre nogle opgaver som reaktion på forekomsten af ​​en bestemt specificeret begivenhed.

Udløseren kan påberåbes som svar på DDL- sætningerne (DELETE, INSERT eller UPDATE) eller DML- sætninger (DELETE, INSERT eller UPDATE) eller til nogle databaseoperationer (SERVERERROR, LOGON, LOGOFF, STARTUP eller SHUTDOWN).

Udløseren består af tre komponenter som beskrevet nedenfor:

  • Hændelse : Hændelse er forekomsten af ​​en hændelse, der vil forårsage udførelse af udløseren. Udløseren kan bestilles for at udføre enten FØR en hændelse opstår, eller det kan bestilles for at blive udført AFTER udførelsen af ​​en begivenhed.
  • Tilstand : Det er en valgfri del af udløseren. Hvis ikke nævnt trigger udføres som den angivne begivenhed opstår. Hvis betingelsen er angivet, kontrollerer den reglerne for at afgøre, om triggeren skal udføres.
  • Handling : Handling er et sæt SQL-sætninger, der udføres på udførelsen af ​​Trigger.

Den generelle form for oprettelse af en begivenhed er diskuteret nedenfor:

 CREATE TRIGGER FØR / EFTER BEGRÆNSELSFORANSTALTNINGER; 

Her er betingelsen valgfri.

Definition af procedurer

Proceduren kan tages som en programenhed, der er oprettet til at udføre en opgave, og den er gemt på databasen. De påberåbes af SQL-sætningen, når det er nødvendigt. Procedurer er som brugerdefinerede funktioner, der er defineret af udviklerne. Procedurer kan påberåbes ved hjælp af CALL eller EXECUTE .

Procedurerne er nyttige i følgende situationer:

  • Hvis proceduren er påkrævet af flere andre applikationer, kan den gemmes på serveren, så de kan påberåbes af enhver applikation. Det vil reducere indsatsen for at duplikere proceduren fra en database til en anden og forbedrer også modulariteten af ​​softwaren.
  • Da proceduren udføres på serveren, vil den reducere dataoverførsel og også reducere kommunikationsomkostningerne.
  • Procedurerne kan bruges til at kontrollere de komplekse begrænsninger, der ligger uden for udløseren.

Lad os diskutere den generelle form for at skabe en procedure:

 CREATE PROCEDURE () RETURNS; 

Her er parametrene og de lokale erklæringer valgfrie. De nævnes kun, når de er påkrævet. Ovenstående erklæring beskriver procedurens kald.

 OPKALD () ; 

Nøgleforskelle mellem Trigger og Procedure

  1. Den primære forskel mellem udløseren og proceduren er, at en udløser er en erklæring, der automatisk påberåbes, når en begivenhed er indtruffet. På den anden side påberåbes proceduren, når det er nødvendigt.
  2. Man kan definere proceduren inde i en trigger. Men en trigger er aldrig defineret i en procedure, da udløseren skal påberåbes automatisk ved forekomsten af ​​en begivenhed.
  3. Vi kan videresende parametre til procedurer, men vi kan ikke passere parametre for at udløse, da det ikke påberåbes af os.
  4. En procedure kan returnere parameterværdier eller kode, men en trigger kan ikke.

Konklusion:

Udløsere er nyttige, men de undgås, hvis der findes noget alternativ til dem, da det øger datakompleksiteten. Sommetider udløsere er også erstatninger ved en passende procedure.

Top