Priporočena, 2023

Izbira Urednika

Razlika med sprožilcem in postopkom

Sprožilec in postopek sta komponenta naprednega SQL-a. Trigger in postopek izvajata določeno nalogo pri izvajanju. Temeljna razlika med sprožilcem in postopkom je, da se sprožilec samodejno izvede na dogodke dogodka, medtem ko se postopek izvede, ko je izrecno priklican.

Oglejmo si še nekaj razlik med sprožilcem in postopkom s pomočjo primerjalne tabele, prikazane spodaj.

Primerjalna tabela

Podlaga za primerjavoSprožilciPostopki
OsnovnoSamodejno se izvedejo ob nastopu določenega dogodka.Izvajajo se lahko kadarkoli je to potrebno.
KlicanjeSprožilcev ni mogoče poklicati znotraj postopka.Lahko pa kličete postopek znotraj sprožilca.
ParameterParametrov ne moremo posredovati sprožilcem.Parametre lahko posredujemo postopkom.
VrnitevTrigger nikoli ne vrne vrednosti pri izvajanju.Postopek lahko vrne vrednost / s na izvedbo.

Opredelitev sprožilca

Sprožilec je kot postopek, ki se izvede samodejno ob pojavitvi določenega dogodka. Enako kot postopek, sprožilca ni treba klicati izrecno. Triggerji so ustvarjeni, da opravijo neko nalogo kot odgovor na pojav določenega določenega dogodka.

Sprožilec se lahko pokliče kot odgovor na stavke DDL (DELETE, INSERT ali UPDATE) ali stavke DML (DELETE, INSERT ali UPDATE) ali na nekatere operacije baze podatkov (SERVERERROR, LOGON, LOGOFF, STARTUP ali SHUTDOWN).

Sprožilec je sestavljen iz treh komponent, kot je opisano spodaj:

  • Dogodek : Dogodek je dogodek nekega incidenta, ki bo povzročil izvršitev sprožilca. Sprožilec se lahko naroči, da izvede bodisi PREDEN se zgodi dogodek ali pa je lahko naročeno, da se izvrši po izvedbi dogodka.
  • Pogoj : To je neobvezen del sprožilca. Če ne bo omenjen sprožilec, se bo izvedel, ko se bo pojavil določen dogodek. Če je pogoj podan, bo preveril pravila, da ugotovi, ali naj se sproži sprožilec.
  • Dejanje : Dejanje je niz stavkov SQL, ki se bodo izvajali ob izvajanju sprožilca.

Spodaj je opisana splošna oblika ustvarjanja dogodka:

 CREATE TRIGGER PRED / PO POSTOPKU AKCIJE; 

Tukaj pogoj ni obvezen.

Opredelitev postopkov

Postopek lahko uporabimo kot programsko enoto, ki je izdelana za opravljanje neke naloge in je shranjena v bazi podatkov. Kadar je to potrebno, jih kliče stavek SQL. Postopki so kot uporabniško definirane funkcije, ki jih definirajo razvijalci. Postopke lahko prikličete s CALL ali EXECUTE .

Postopki so uporabni v naslednjih primerih:

  • Če postopek zahteva več drugih aplikacij, se lahko shrani na strežnik, tako da jih lahko kliče katera koli aplikacija. To bo zmanjšalo napore podvajanja postopka iz ene baze podatkov v drugo in tudi izboljšalo modularnost programske opreme.
  • Ker se postopek izvaja na strežniku, bo to zmanjšalo prenos podatkov in zmanjšalo stroške komunikacije.
  • Postopki se lahko uporabljajo za preverjanje kompleksnih omejitev, ki presegajo moč sprožilca.

Razpravljamo o splošni obliki ustvarjanja postopka:

 USTVARITE POSTOPEK () VRAČILO; 

Tukaj so parametri in lokalne deklaracije neobvezni. Navedeni so le takrat, ko so potrebni. Spodnja izjava opisuje klicanje postopkov.

 CALL (); 

Ključne razlike med sprožilcem in postopkom

  1. Primarna razlika med sprožilcem in postopkom je, da je sprožilec stavek, ki se samodejno prikliče, ko se je dogodek zgodil. Po drugi strani se postopek uveljavlja, kadar je to potrebno.
  2. Lahko določimo postopek znotraj sprožilca. Vendar pa sprožilec nikoli ni definiran znotraj postopka, saj mora biti sprožilec sprožen samodejno ob nastanku katerega koli dogodka.
  3. Parametre lahko prenašamo v postopke, vendar ne moremo posredovati parametrov, ki jih sprožimo, ker jih mi ne uveljavljamo.
  4. Postopek lahko vrne vrednosti parametrov ali kodo, vendar sprožilec ne more.

Sklep:

Sprožilci so koristni, vendar se jim izogibamo, če obstajajo kakšna alternativa, saj povečuje kompleksnost podatkov. Včasih so sprožilci tudi nadomestki z ustreznim postopkom.

Top