Diferența dintre declanșare și procedură

Autor: Laura McKinney
Data Creației: 1 Aprilie 2021
Data Actualizării: 17 Mai 2024
Anonim
Care este diferența dintre PRP facial și mezoterapie?
Video: Care este diferența dintre PRP facial și mezoterapie?

Conţinut


Declanșarea și procedura sunt componente ale SQL Advanced. Trigger și Procedură îndeplinesc ambele o sarcină specificată cu privire la execuția lor. Diferența fundamentală între declanșare și Procedură este că trăgaci execută automat la aparițiile unui eveniment întrucât, Procedură este executat atunci când este invocat explicit.

Să discutăm alte diferențe între Trigger și Procedură cu ajutorul unui grafic de comparație prezentat mai jos.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație

Baza pentru comparațiedeclanșatoareProceduri
De bază Acestea sunt executate automat la apariția unui eveniment specificat.Pot fi executate ori de câte ori este necesar.
apelDeclanșatoarele nu pot fi apelate în cadrul unei proceduri.Dar, puteți apela o procedură în interiorul unui declanșator.
Parametru Nu putem trece parametrii la declanșatori.Putem trece parametrii la proceduri.
ÎntoarcereDeclanșarea nu returnează niciodată valoarea la execuție.Procedura poate returna valoarea / valorile la executare.


Definiția Trigger

Declanșatorul este ca o procedură care se execută automat la apariția unui eveniment specificat. Ca și procedura, declanșatorul nu trebuie să fie apelat explicit. Sunt create declanșatoare pentru a efectua o anumită sarcină ca răspuns la apariția unui eveniment specificat.

Declanșatorul poate fi invocat ca răspuns la DDL declarații (DELETE, INSERT sau UPDATE) sau DML instrucțiuni (DELETE, INSERT sau UPDATE) sau, la unele operațiuni de bază de date (SERVERERROR, LOGON, LOGOFF, STARTUP sau SHUTDOWN).

Declanșatorul este format din trei componente, după cum este discutat mai jos:

  • Eveniment: Evenimentul este apariția unui incident care va determina executarea declanșatorului. Or, declanșatorul poate fi comandat să execute INAINTE DE are loc un eveniment sau poate fi dispus să fie executat DUPĂ executarea unui eveniment.
  • Condiție: Este o parte opțională a declanșatorului. Dacă nu este menționat, declanșatorul se va executa pe măsură ce apare evenimentul specificat. Dacă este specificată condiția, atunci aceasta va verifica regulile pentru a determina dacă declanșatorul ar trebui să fie executat.
  • Acțiune: Action este un set de instructiuni SQL care va fi executat la executarea Trigger-ului.

Forma generală de creare a unui eveniment este discutată mai jos:


CREAȚI TRIGGER ÎNAINTE DUPĂ ACȚIUNEA CONDIȚIEI;

Aici, condiția este opțională.

Definiția procedurilor

Procedura poate fi luată ca o unitate de program, creată pentru a efectua o anumită sarcină și este stocată în baza de date. Acestea sunt invocate de instrucțiunea SQL ori de câte ori este necesar. Procedurile sunt ca funcțiile definite de utilizator care sunt definite de dezvoltatori. Procedurile pot fi invocate folosind APEL sau A EXECUTA.

Procedurile sunt utile în următoarele situații:

  • Dacă procedura este solicitată de alte câteva aplicații, aceasta poate fi stocată pe server, astfel încât să poată fi invocată de orice aplicație. Acesta va reduce efortul de duplicare a procedurii de la o bază de date la alta și, de asemenea, îmbunătățește modularitatea software-ului.
  • Pe măsură ce procedura se execută pe server, va reduce transferul de date și va reduce și costul de comunicare.
  • Procedurile pot fi utilizate pentru a verifica constrângerile complexe care sunt dincolo de puterea de declanșare.

Să discutăm despre forma generală de creare a unei proceduri:

CREAȚI PROCEDURA () SE INTOARCE ;

Aici, parametrii și declarațiile locale sunt opționale. Acestea sunt menționate numai atunci când li se cere. Declarația de mai jos descrie apelul procedurilor.

APEL () ;

  1. Diferența principală între declanșator și procedură este că un declanșator este o declarație care se invocă automat atunci când a avut loc un eveniment. Pe de altă parte, procedura este invocată ori de câte ori este necesară.
  2. Se poate defini procedura în interiorul unui declanșator. Dar, un declanșator nu este niciodată definit în cadrul unei proceduri, deoarece declanșatorul trebuie invocat automat la apariția oricărui eveniment.
  3. Putem trece parametrii la proceduri, dar nu putem trece parametri pentru a declanșa, deoarece nu este invocat de noi.
  4. O procedură poate returna valorile parametrilor sau codul, dar un declanșator nu poate.

Concluzie:

Declanșatoarele sunt utile, dar sunt evitate dacă există vreo alternativă la acestea, deoarece crește complexitatea datelor. Uneori, declanșatorii sunt de asemenea înlocuiți printr-o procedură adecvată.