Apspriedīsim dažas atšķirības starp Trigger un Procedūru, izmantojot zemāk redzamo salīdzināšanas tabulu.
Salīdzinājuma diagramma
Salīdzinājuma pamats | Palaišanas | Procedūras |
---|---|---|
Pamata | Tie tiek automātiski izpildīti, iestājoties noteiktam notikumam. | Tos var izpildīt, kad tas ir nepieciešams. |
Zvanīšana | Trigeri nevar tikt izsaukti procedūras ietvaros. | Bet, jūs varat izsaukt procedūru sprūda ietvaros. |
Parametrs | Mēs nevaram nodot parametrus, lai aktivizētu. | Mēs varam nodot parametrus procedūrām. |
Atgriezties | Trigger nekad neatgriež vērtību izpildei. | Procedūra var atgriezt izpildījuma vērtību / s. |
Trigera definīcija
Iedarbinātājs ir kā procedūra, kas tiek izpildīta automātiski pēc noteikta notikuma. Tāpat kā procedūra, sprūda nav jāuztic skaidri. Tiek izveidoti trigeri, lai veiktu kādu uzdevumu, reaģējot uz kāda noteikta notikuma rašanos.
Iedarbinātāju var izmantot, atbildot uz DDL paziņojumiem (DELETE, INSERT vai UPDATE) vai DML paziņojumiem (DELETE, INSERT vai UPDATE) vai uz dažām datu bāzu darbībām (SERVERERROR, LOGON, LOGOFF, STARTUP vai SHUTDOWN).
Indikators sastāv no trim komponentiem, kā aprakstīts tālāk:
- Notikums : notikums ir kāda notikuma iestāšanās, kas izraisīs sprūda izpildi. Izsaucēju var uzdot izpildīt vai nu pirms notikuma, vai arī tai var tikt uzdots izpildīt pēc notikuma izpildes.
- Stāvoklis : tā ir izvēles sprūda. Ja netiks minēts trigeris, tas tiks izpildīts, kad notiks norādītais notikums. Ja nosacījums ir norādīts, tad tā pārbaudīs noteikumus, lai noteiktu, vai ir jāizpilda sprūda.
- Rīcība : darbība ir noteikts SQL paziņojums, kas tiks izpildīts, izpildot trigeri.
Vispārējs pasākuma izveides veids ir aplūkots tālāk:
CREATE TRIGGER PIRMS / PĒC KONDICIONĒŠANAS RĪCĪBAS;
Šeit nosacījums ir obligāts.
Procedūru definīcija
Procedūru var uzskatīt par programmas vienību, kas izveidota, lai veiktu kādu uzdevumu, un tā tiek saglabāta datu bāzē. Tos pieprasa SQL, kad tas ir nepieciešams. Procedūras ir līdzīgas lietotāja definētām funkcijām, ko nosaka izstrādātāji. Procedūras var izmantot, izmantojot CALL vai EXECUTE .
Procedūras ir noderīgas šādās situācijās:
- Ja procedūra ir nepieciešama vairākām citām lietojumprogrammām, tad to var saglabāt serverī, lai tās varētu izmantot jebkura lietojumprogramma. Tas samazinās procedūras dublēšanas centienus no vienas datu bāzes uz citu un uzlabos arī programmatūras modularitāti.
- Tā kā procedūra tiek veikta serverī, tā samazinās datu pārraidi un samazinās arī sakaru izmaksas.
- Procedūras var izmantot, lai pārbaudītu sarežģītos ierobežojumus, kas ir ārpus sprūda.
Apspriedīsim vispārējo procedūras izveidošanas veidu:
CREATE PROCEDŪRA () ATJAUNOŠANA;
Šeit parametri un vietējās deklarācijas nav obligātas. Tie ir minēti tikai tad, kad tie ir nepieciešami. Turpmāk sniegtajā paziņojumā aprakstīta procedūru izsaukšana.
CALL ();
Galvenās atšķirības starp virzītāju un procedūru
- Galvenā atšķirība starp trigeri un procedūru ir tā, ka sprūda ir paziņojums, kas automātiski tiek izmantots, kad notikums ir noticis. No otras puses, procedūra tiek izmantota ikreiz, kad tas ir nepieciešams.
- Procedūru var definēt sprūda iekšpusē. Bet, sprūda nekad nav definēta procedūras ietvaros, jo sprūda ir jāizsauc automātiski jebkura notikuma gadījumā.
- Mēs varam nodot parametrus procedūrām, bet mēs nevaram nodot parametrus, lai aktivizētu, jo mēs to neizmantojam.
- Procedūra var atgriezt parametru vērtības vai kodu, bet nevar.
Secinājums:
Palaišanas ierīces ir noderīgas, bet tās tiek novērstas, ja tām ir kādas alternatīvas, jo tas palielina datu sarežģītību. Dažreiz iedarbinātāji arī aizstāj ar piemērotu procedūru.