Skirtumas tarp trigerio ir procedūros

Autorius: Laura McKinney
Kūrybos Data: 1 Balandis 2021
Atnaujinimo Data: 5 Gegužė 2024
Anonim
SQL Server Tutorial - Comparing triggers, functions, and procedures
Video.: SQL Server Tutorial - Comparing triggers, functions, and procedures

Turinys


Triggeris ir procedūra yra sudėtingesnio SQL sudedamoji dalis. Triggeris ir procedūra vykdo nurodytą užduotį. Esminis skirtumas tarp trigerio ir procedūros yra tas, kad Trigeris įvykdo įvykį automatiškai, tuo tarpu Procedūra vykdomas, kai jis aiškiai iškviečiamas.

Toliau pateiktoje palyginimo diagramoje aptarsime dar keletą trigerio ir procedūros skirtumų.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindasTrigeriaiProcedūros
Pagrindinis Jie automatiškai vykdomi įvykus nurodytam įvykiui.Jie gali būti įvykdyti, kai to reikia.
SkambinaTriggeriai negali būti vadinami procedūros metu.Bet jūs galite iškviesti procedūrą trigerio viduje.
Parametras Negalime perduoti parametrų aktyvikliams.Galime perduoti parametrus procedūroms.
GrįžtiSuaktyvintuvas niekada negrąžins vertės vykdydamas.Procedūra gali grąžinti vertę (-es) vykdant.


Triggerio apibrėžimas

Trigeris yra tarsi procedūra, kuri automatiškai vykdoma įvykus nurodytam įvykiui. Kaip ir procedūros, gaiduko nereikia aiškiai vadinti. Sukuriami trigeriai, skirti atlikti tam tikrą užduotį, reaguojant į kažkokį nurodytą įvykį.

Trigerį galima iškviesti reaguojant į DDL teiginius (ištrinti, įterpti ar atnaujinti) arba DML teiginius (DELETE, INSERT ar UPDATE) arba kai kurias duomenų bazės operacijas (SERVERERROR, LOGON, LOGOFF, STARTUP ar SHUTDOWN).

Trigeris susideda iš trijų komponentų, kaip aptarta toliau:

  • Renginys: Įvykis yra įvykis, įvyksiantis dėl įvykio. Trigerį galima nurodyti atlikti bet kurį PRIEŠ įvyksta įvykis arba gali būti įsakyta jį įvykdyti PO įvykio įvykdymas.
  • Būklė: Tai pasirenkama gaiduko dalis. Jei nepaminėtas, trigeris bus įvykdytas įvykus nurodytam įvykiui. Jei sąlyga yra nurodyta, tada ji patikrins taisykles, kad nustatytų, ar trigeris turėtų būti vykdomas.
  • Veiksmas: Veiksmas yra nustatyti SQL sakiniai, kurie bus vykdomi vykdant paleidiklį.

Toliau aptariama bendra renginio sukūrimo forma:


CREATE TRIGGER PRIEŠ PO KONDICIONINĖ VEIKLA;

Čia sąlyga yra neprivaloma.

Procedūrų apibrėžimas

Procedūra gali būti laikoma programos vienetu, sukurtu tam tikrai užduočiai atlikti ir yra saugoma duomenų bazėje. Prireikus jie yra iškviečiami SQL. Procedūros yra kaip vartotojo apibrėžtos funkcijos, kurias nustato kūrėjai. Procedūras galima atlikti naudojantis KVIETIMAS arba VYKDYTI.

Procedūros yra naudingos tokiose situacijose:

  • Jei procedūros reikalauja kelios kitos programos, tada ją galima laikyti serveryje, kad jas galėtų iškviesti bet kuri programa. Tai sumažins pastangas dubliuoti procedūrą iš vienos duomenų bazės į kitą ir taip pat pagerins programinės įrangos moduliškumą.
  • Kadangi procedūra vykdoma serveryje, tai sumažins duomenų perdavimą ir sumažins ryšio sąnaudas.
  • Procedūros gali būti naudojamos norint patikrinti sudėtingus apribojimus, viršijančius trigerio galią.

Aptarsime bendrą procedūros sudarymo formą:

KŪRIMO TVARKA () ATGAL ;

Čia parametrai ir vietinės deklaracijos yra neprivalomi. Jie minimi tik tada, kai to reikalaujama. Žemiau pateiktas teiginys apibūdina procedūrų iškvietimą.

KVIETIMAS () ;

  1. Pagrindinis trigerio ir procedūros skirtumas yra tas, kad aktyviklis yra teiginys, kuris automatiškai iškviečiamas įvykus įvykiui. Kita vertus, procedūra taikoma visada, kai to reikia.
  2. Galima apibrėžti procedūrą trigerio viduje. Tačiau trigeris niekada nėra apibrėžtas procedūros metu, nes jis turi būti automatiškai iškviečiamas įvykus bet kokiam įvykiui.
  3. Mes galime perduoti parametrus procedūroms, bet mes negalime perduoti parametrų, kad suaktyvintume, nes mes to nepadarėme.
  4. Procedūra gali grąžinti parametrų reikšmes arba kodą, tačiau gaidukas negali.

Išvada:

Paleidikliai yra naudingi, tačiau jų vengiama, jei yra kokia nors alternatyva, nes tai padidina duomenų sudėtingumą. Kartais trigeriai taip pat yra tinkamos procedūros pakaitalai.