Lad os diskutere nogle flere forskelle mellem Trigger og Procedure ved hjælp af et sammenligningskort vist nedenfor.
Sammenligningstabel
Grundlag for sammenligning | triggers | Procedurer |
---|---|---|
Grundlæggende | De udføres automatisk ved forekomst af specificeret begivenhed. | De kan udføres, når det er nødvendigt. |
Ringer | Udløsere kan ikke kaldes i en procedure. | Men du kan kalde en procedure inde i en trigger. |
Parameter | Vi kan ikke videresende parametre til udløsere. | Vi kan videresende parametre til procedurer. |
Vend tilbage | Trigger 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
- 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.
- 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.
- Vi kan videresende parametre til procedurer, men vi kan ikke passere parametre for at udløse, da det ikke påberåbes af os.
- 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.