La oss diskutere noen flere forskjeller mellom Trigger og Prosedyre ved hjelp av et sammenligningsdiagram som er vist nedenfor.
Sammenligningstabel
Grunnlag for sammenligning | Triggers | prosedyrer |
---|---|---|
grunn~~POS=TRUNC | De blir automatisk utført ved forekomst av spesifisert hendelse. | De kan utføres når det kreves. |
ringe | Utløsere kan ikke kalles i en prosedyre. | Men du kan ringe en prosedyre inne i en utløser. |
Parameter | Vi kan ikke passere parametere til utløsere. | Vi kan sende parametere til prosedyrer. |
Komme tilbake | Trigger returnerer aldri verdien på utførelse. | Prosedyre kan returnere verdi / s ved utførelse. |
Definisjon av Trigger
Utløseren er som en prosedyre som blir utført automatisk ved forekomst av en spesifisert hendelse. Som prosedyren trenger ikke utløseren å bli kalt eksplisitt. Utløsere er opprettet, for å utføre noen oppgaver som svar på forekomsten av noe spesifisert arrangement.
Utløseren kan påberopes som svar på DDL- setningene (DELETE, INSERT eller UPDATE), eller DML- setninger (DELETE, INSERT eller UPDATE) eller til noen databasebehandlinger (SERVERERROR, LOGON, LOGOFF, STARTUP eller SHUTDOWN).
Utløseren består av tre komponenter som beskrevet nedenfor:
- Hendelse : Hendelse er forekomsten av en hendelse som vil forårsake utførelse av avtrekkeren. Utløseren kan bestilles for å utføre enten FØR en hendelse oppstår eller det kan bli bestilt for å bli utført etter at en hendelse er utført.
- Tilstand : Det er en valgfri del av avtrekkeren. Hvis ikke nevnt utløseren vil utføres som den angitte hendelsen oppstår. Hvis tilstanden er spesifisert, vil den sjekke reglene for å avgjøre om utløseren skal utføres.
- Handling : Handling er et sett SQL-setninger som vil bli utført på utførelsen av Trigger.
Den generelle form for opprettelse av et arrangement diskuteres nedenfor:
CREATE TRIGGER FØR / EFTER TILSTANDSAKSJON;
Her er tilstanden valgfri.
Definisjon av prosedyrer
Prosedyren kan tas som en programenhet, opprettet for å utføre en viss oppgave, og den er lagret i databasen. De påberopes av SQL-setningen når det er nødvendig. Prosedyrer er som brukerdefinerte funksjoner som er definert av utviklerne. Prosedyrer kan påberopes ved hjelp av CALL eller EXECUTE .
Prosedyrene er nyttige i følgende situasjoner:
- Hvis prosedyren kreves av flere andre applikasjoner, kan den lagres på serveren slik at de kan påberopes av ethvert program. Det vil redusere innsatsen for duplisering av prosedyren fra en database til en annen, og forbedrer også modulariteten til programvaren.
- Da prosedyren utføres på serveren, vil den redusere dataoverføringen og også redusere kommunikasjonsprisen.
- Prosedyrene kan brukes til å kontrollere komplekse begrensninger som er utenfor kraften til utløseren.
La oss diskutere den generelle formen for å skape en prosedyre:
CREATE PROCEDURE () RETURNS;
Her er parametrene og de lokale deklarasjonene valgfrie. De er kun nevnt når de er påkrevd. Oppgaven nedenfor beskriver prosedyrenes kallelse.
ANROP () ;
Viktige forskjeller mellom utløseren og prosedyren
- Den primære forskjellen mellom utløseren og prosedyren er at en utløser er en uttalelse som blir påkalt automatisk når en hendelse har skjedd. På den annen side blir prosedyren påkalt når det er nødvendig.
- Man kan definere prosedyre inne i en utløser. Men en utløser er aldri definert i en prosedyre som utløseren må påberopes automatisk ved forekomst av noe arrangement.
- Vi kan sende parametere til prosedyrer, men vi kan ikke passere parametere for å utløse som det ikke påberopes av oss.
- En prosedyre kan returnere parameterverdier eller kode, men en trigger kan ikke.
Konklusjon:
Utløsere er nyttige, men de unngås hvis det finnes noe alternativ til dem, da det øker datakompleksiteten. Noen ganger utløsere er også erstatter med en passende prosedyre.