Különbség a kiváltó és az eljárás között

Szerző: Laura McKinney
A Teremtés Dátuma: 1 Április 2021
Frissítés Dátuma: 12 Lehet 2024
Anonim
Különbség a kiváltó és az eljárás között - Technológia
Különbség a kiváltó és az eljárás között - Technológia

Tartalom


A trigger és az eljárás az Advanced SQL alkotóeleme. A trigger és az eljárás is végrehajt egy meghatározott feladatot végrehajtásukkor. A trigger és az eljárás közötti alapvető különbség az, hogy ravasz automatikusan végrehajtja egy esemény bekövetkeztét, míg a eljárás akkor kerül végrehajtásra, amikor kifejezetten meghívják.

Beszéljünk néhány további különbségről a trigger és az eljárás között az alább bemutatott összehasonlító táblázat segítségével.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjaEseményindítókeljárások
Alapvető A megadott esemény bekövetkezésekor automatikusan végrehajtásra kerülnek.Ha szükséges, végrehajthatók.
HívásA triggereket nem lehet eljáráson belül megnevezni.De meghívhat egy eljárást egy triggerben.
Paraméter Nem tudjuk átadni a paramétereket a triggereknek.Átadhatjuk a paramétereket az eljárásoknak.
VisszatérésA trigger soha nem ad vissza értéket végrehajtáskor.Az eljárás visszatérhet az érték (ek) végrehajtáskor.


A trigger meghatározása

A trigger olyan, mint egy eljárás, amely automatikusan végrehajtásra kerül egy megadott esemény bekövetkezésekor. Az eljáráshoz hasonlóan a triggert sem kell kifejezetten meghívni. Triggereket hoznak létre, hogy valamilyen feladatot végrehajtsanak egy meghatározott esemény bekövetkezésekor.

Az indítóra a DDL utasítások (TÖRLÉS, BEÍRÁS vagy UPDATE), vagy DML nyilatkozatokat (TÖRLÉS, BEÍRÁS vagy UPDATE) vagy néhány adatbázis-művelethez (SERVERERROR, LOGON, LOGOFF, STARTUP vagy SHUTDOWN).

A ravaszt három komponensből áll, amint azt az alábbiakban tárgyaljuk:

  • Esemény: Az esemény olyan esemény bekövetkezése, amely a trigger végrehajtását okozza. A trigger megrendelhető bármelyik végrehajtására ELŐTT esemény történik, vagy elrendelhető, hogy végrehajtsa UTÁN egy esemény végrehajtása.
  • Állapot: Ez a trigger választható része. Ha nem említik, akkor a trigger akkor fog végrehajtani, amikor a megadott esemény bekövetkezik. Ha a feltételt meghatározták, akkor ellenőrzi a szabályokat annak meghatározására, hogy az indítót végre kell-e hajtani.
  • Akció: A művelet egy meghatározott SQL utasítás, amelyet a Trigger végrehajtásakor hajtunk végre.

Az esemény létrehozásának általános formáját az alábbiakban tárgyaljuk:


CREATE TRIGGER ELŐTTE UTÁNA KONDICIONÁLIS AKCIÓ;

Itt a feltétel opcionális.

Az eljárások meghatározása

Az eljárás programként vehető fel, létrehozható valamilyen feladat elvégzéséhez, és az adatbázisban tárolódik. Az SQL utasítás meghívja őket, ha szükséges. Az eljárások olyanok, mint a felhasználó által definiált függvények, amelyeket a fejlesztők határoznak meg. Az eljárások az alábbiakkal indíthatók meg: HÍVÁS vagy VÉGREHAJT.

Az eljárások a következő helyzetekben hasznosak:

  • Ha az eljárást több más alkalmazás is megköveteli, akkor azt tárolhatja a szerveren, hogy bármilyen alkalmazás meghívhassa őket. Csökkenti az eljárás másolásának erőfeszítéseit az egyik adatbázisból a másikba, és javítja a szoftver modularitását.
  • Mivel az eljárást a szerveren hajtják végre, ez csökkenti az adatátvitelt és a kommunikációs költségeket.
  • Az eljárások ellenőrizhetik azokat a komplex korlátokat, amelyek túllépik a ravaszt.

Beszéljünk meg az eljárás létrehozásának általános formájáról:

LÉTREHOZÁS () VISSZATÉRÉS ;

Itt a paraméterek és a helyi deklarációk nem kötelezőek. Csak akkor említik őket, ha erre szükség van. Az alábbi állítás leírja az eljárások meghívását.

HÍVÁS () ;

  1. Az elsődleges különbség a trigger és az eljárás között az, hogy a trigger egy olyan utasítás, amely automatikusan meghívásra kerül egy esemény bekövetkezésekor. Másrészről, az eljárást bármikor meghívják.
  2. Meg lehet határozni az eljárást a ravaszon belül. De egy eseményindítót soha nem határoznak meg egy eljáráson belül, mivel az eseményindítóra bármilyen esemény bekövetkezésekor automatikusan meg kell hívni.
  3. Átadhatjuk a paramétereket az eljárásoknak, de nem adhatjuk át a paramétereket az indításhoz, mivel nem mi hívjuk fel.
  4. Egy eljárás visszaadhatja a paraméterértékeket vagy a kódot, de az indító nem tudja.

Következtetés:

A triggerek hasznosak, de elkerülhetők, ha létezik alternatíva nekik, mivel ez növeli az adatok bonyolultságát. Időnként a triggerek helyettesíthetők egy megfelelő eljárással.