Atšķirība starp sprūda un procedūru

Autors: Laura McKinney
Radīšanas Datums: 1 Aprīlis 2021
Atjaunināšanas Datums: 13 Maijs 2024
Anonim
RSU profesora Andra Sprūda viedoklis par Ziemas olimpiskajām spēlēm Sočos, 06.02.2014.
Video: RSU profesora Andra Sprūda viedoklis par Ziemas olimpiskajām spēlēm Sočos, 06.02.2014.

Saturs


Aktivizētājs un procedūra ir uzlabotā SQL sastāvdaļa. Gan sprūda, gan procedūra izpilda noteiktu uzdevumu to izpildē. Galvenā atšķirība starp trigeri un procedūru ir tā, ka Trigger automātiski izpilda notikumu gadījumus, turpretī Procedūra tiek izpildīts, kad uz to tieši atsaucas.

Apskatīsim vēl dažas atšķirības starp trigeru un procedūru, izmantojot zemāk parādīto salīdzināšanas tabulu.

  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Secinājums

Salīdzināšanas tabula

Salīdzināšanas pamatsTrigeriProcedūras
Pamata Tie tiek automātiski izpildīti, ja notiek noteikts notikums.Tos var izpildīt, kad vien nepieciešams.
ZvanaTrigeri, kurus nevar saukt procedūras iekšpusē.Bet jūs varat izsaukt procedūru sprūda iekšpusē.
Parametrs Mēs nevaram nodot parametrus sprūdajiem.Mēs varam nodot parametrus procedūrām.
AtgrieztiesAktivizētājs nekad neatdod vērtību izpildes laikā.Procedūra var atgriezt vērtību (-as) izpildes laikā.


Trigera definīcija

Sprūda ir kā procedūra, kas tiek automātiski izpildīta, ja notiek noteikts notikums. Tāpat kā procedūra, sprūda nav skaidri jāsauc. Trigeri tiek izveidoti, lai izpildītu kādu uzdevumu, reaģējot uz kāda noteikta notikuma iestāšanos.

Uz sprūdu var atsaukties, reaģējot uz DDL paziņojumus (izdzēst, ievietot vai atjaunināt) vai DML paziņojumus (DELETE, INSERT vai UPDATE) vai, izmantojot dažas datu bāzes darbības (SERVERERROR, LOGON, LOGOFF, STARTUP vai SHUTDOWN).

Sprūda sastāv no trim komponentiem, kā aprakstīts turpmāk:

  • Pasākums: Notikums ir kāda negadījuma notikums, kas izraisīs sprūda izpildi. Sprūdu var pasūtīt izpildīt vienu vai otru PIRMS notiek notikums vai to var likt izpildīt PĒC notikuma izpilde.
  • Stāvoklis: Tā ir izvēles iespēja. Ja nav minēts, sprūda tiks izpildīta, kad notiks norādītais notikums. Ja nosacījums ir norādīts, tad tas pārbaudīs noteikumus, lai noteiktu, vai ir jāizpilda sprūda.
  • Darbība: Darbība ir noteikts SQL paziņojums, kas tiks izpildīts, izpildot trigeri.

Pasākuma izveides vispārējā forma ir apskatīta zemāk:


CREATE TRIGGER PIRMS PĒC KONDICIONĀLA RĪCĪBA;

Šeit nosacījums nav obligāts.

Procedūru definīcija

Procedūru var uzskatīt par programmas vienību, kas izveidota kāda uzdevuma veikšanai, un tā tiek glabāta datu bāzē. Kad vien nepieciešams, uz tiem atsaucas SQL. Procedūras ir līdzīgas lietotāja definētām funkcijām, kuras nosaka izstrādātāji. Procedūras var izmantot, izmantojot ZVANOT vai IZPILDĪT.

Procedūras ir noderīgas šādās situācijās:

  • Ja procedūru pieprasa vairākas citas lietojumprogrammas, tad to var uzglabāt serverī, lai uz tām varētu atsaukties jebkura programma. Tas samazinās centienus dublēt procedūru no vienas datu bāzes uz otru un arī uzlabos programmatūras modularitāti.
  • Tā kā procedūra tiek veikta serverī, tā samazinās datu pārsūtīšanu un samazinās arī sakaru izmaksas.
  • Procedūras var izmantot, lai pārbaudītu sarežģītos ierobežojumus, kas pārsniedz sprūda spēku.

Apspriedīsim procedūras izveidošanas vispārīgo formu:

IZVEIDOŠANAS PROCEDŪRA () ATGRIEZTIES ;

Šeit parametri un vietējās deklarācijas nav obligātas. Tie tiek minēti tikai tad, kad tie ir nepieciešami. Tālāk sniegtais paziņojums apraksta procedūru izsaukšanu.

ZVANOT () ;

  1. Galvenā atšķirība starp sprūda un procedūru ir tāda, ka sprūda ir paziņojums, kas automātiski tiek izsaukts, ja ir noticis kāds notikums. No otras puses, procedūra tiek pielietota ikreiz, kad tā ir nepieciešama.
  2. Var noteikt procedūru sprūda iekšpusē. Tomēr sprūda procedūrā nekad nav definēta, jo sprūda automātiski jāizsauc, iestājoties jebkuram notikumam.
  3. Mēs varam nodot parametrus procedūrām, bet mēs nevaram nodot parametrus, lai tos iedarbinātu, jo mēs to neizsaucam.
  4. Procedūra var atgriezt parametru vērtības vai kodu, bet sprūda nevar.

Secinājums:

Aktivizētāji ir noderīgi, taču no tiem izvairās, ja tiem ir alternatīva, jo tas palielina datu sarežģītību. Dažreiz sprūdi ir arī aizstājēji ar atbilstošu procedūru.