Sprožilec je shranjena procedura v zbirki podatkov, ki se samodejno prikliče vsakič, ko pride do posebnega dogodka v zbirki podatkov. Na primer, sprožilec je mogoče priklicati, ko je vrstica vstavljena v določeno tabelo ali ko so določeni stolpci tabele posodobljeni. Preprosto povedano, sprožilec je zbirka SQL izjave z določenimi imeni, ki so shranjeni v sistemskem pomnilniku. Spada v določen razred shranjenih procedur, ki se samodejno kličejo kot odgovor na dogodke strežnika baze podatkov. Na vsak sprožilec je pritrjena tabela.
Ker sprožilca ni mogoče poklicati neposredno, se v nasprotju s shranjeno proceduro imenuje posebna procedura. Sprožilec se samodejno pokliče vsakič, ko pride do spremembe podatkov v tabeli, kar je glavna razlika med sprožilcem in proceduro. Po drugi strani pa je treba shranjeno proceduro poklicati neposredno.
Sledijo ključne razlike med sprožilci in shranjenimi postopki:
- Sprožilcev ni mogoče ročno priklicati ali izvesti.
- Ni možnosti, da bi sprožilci prejeli parametre.
- Transakcije ni mogoče potrditi ali razveljaviti znotraj sprožilca.
Sintaksa:
katrina kaif
ustvari sprožilec [ime_sprožilca]
[pred | po]
vstavi
na [ime_tabele]
[za vsako vrstico]
[telo_sprožilca]
Razlaga sintakse
- Ustvari sprožilec [trigger_name]: ustvari ali zamenja obstoječi sprožilec z trigger_name.
- [pred | po]: To določa, kdaj se sprožilec izvede.
- vstavi : To določa operacijo DML.
- Na [ime_tabele]: To podaja ime tabele, povezane s sprožilcem.
- [za vsako vrstico]: To določa sprožilec na ravni vrstice, tj. sprožilec bo izveden za vsako prizadeto vrstico.
- [telo_sprožilca]: To zagotavlja operacijo, ki se izvede, ko se sproži sprožilec
Zakaj uporabljamo sprožilce?
Ko moramo nekaj dejanj izvesti samodejno v določenih želenih scenarijih, bodo koristni sprožilci. Na primer, zavedati se moramo pogostosti in časa sprememb tabele, ki se nenehno spreminja. V takšnih primerih bi lahko ustvarili sprožilec za vstavljanje zahtevanih podatkov v drugo tabelo, če bi bila primarna tabela kakor koli spremenjena.
Različne vrste sprožilcev v SQL Serverju
Obstajata dve kategoriji sprožilcev:
- Sprožilec DDL
- Sprožilec DML
- Sprožilci prijave
Sprožilci DDL
Dogodki ukazov Data Definition Language (DDL), kot so Create_table, Create_view, drop_table, Drop_view in Alter_table, povzročijo aktiviranje prožilcev DDL.
SQL Server
create trigger safety on database for create_table,alter_table,drop_table as print 'you can not create,drop and alter tab>
Izhod:
Sprožilci DML
Podatki uporabljajo dogodke ukazov manipulativnega jezika (DML), ki se začnejo z Vstavi, Posodobi in Izbriši, sprožijo sprožilce DML. ki ustreza insert_table, update_view in delete_table.
SQL Server
create trigger deep on emp for insert,update ,delete as print 'you can not insert,update and delete this table i' rollback;>
Izhod:
Sprožilci prijave
sprožilci prijave se sprožijo kot odgovor na dogodek LOGON. Ko je uporabniška seja ustvarjena s primerkom SQL Server po končanem postopku preverjanja pristnosti beleženja, vendar pred vzpostavitvijo uporabniške seje, se izvede dogodek LOGON. Posledično bodo sporočila izjave PRINT in vse napake, ki jih ustvari sprožilec, vidne v dnevniku napak strežnika SQL. Napake pri preverjanju pristnosti preprečujejo uporabo sprožilcev za prijavo. Te sprožilce je mogoče uporabiti za sledenje dejavnosti prijave ali za nastavitev omejitve števila sej, ki jih lahko ima določena prijava, da se revidira in upravlja seje strežnika.
Kako SQL Server Show Trigger?
Sprožilec show ali list je uporaben, ko imamo veliko baz podatkov z veliko tabelami. Ta poizvedba je zelo uporabna, če so imena tabel enaka v več zbirkah podatkov. Z uporabo spodnjega ukaza si lahko ogledamo seznam vseh sprožilcev, ki so na voljo v strežniku SQL:
Sintaksa:
FROM sys.triggers, IZBERI ime, is_instead_of_trigger
IF tip = 'TR';
SQL Server Management Studio omogoča zelo preprost prikaz ali seznam vseh sprožilcev, ki so na voljo za katero koli tabelo. Pri tem nam bodo pomagali naslednji koraki:
Pojdi na Baze podatkov izberite želeno zbirko podatkov in jo razširite.
- Izberite Mize meni in ga razširite.
- Izberite katero koli specifično tabelo in jo razširite.
Tukaj bomo dobili različne možnosti. Ko izberemo Sprožilci prikaže vse sprožilce, ki so na voljo v tej tabeli.
Sprožilec PREJ in POTEM
BEFORE sprožilci zaženejo dejanje sprožilca, preden se zažene sprožilni stavek. Sprožilci AFTER zaženejo dejanje sprožilca po zagonu sprožilnega stavka.
Primer
Data Database Student Report Database, v kateri se beleži ocena študentov. V takšni shemi ustvarite sprožilec, tako da se skupna vrednost in odstotek določenih oznak samodejno vstavita vsakič, ko je vstavljen zapis.
Tukaj se sprožilec sproži, preden se vstavi zapis, tako da je mogoče uporabiti oznako BEFORE.
Recimo shemo baze podatkov
Poizvedba
mysql>>desc Študent;>
Sprožilec SQL do izjave o težavi.
Zgornji stavek SQL bo ustvaril sprožilec v podatkovni zbirki študentov, v kateri bo sprožilec vsakič, ko so vnesene ocene predmetov, preden te podatke vnese v bazo podatkov, izračunal ti dve vrednosti in ju vstavil z vnesenima vrednostma. tj.
Izhod
Na ta način se sprožilci lahko ustvarjajo in izvajajo v bazah podatkov.
Prednost sprožilcev
Prednosti uporabe sprožilcev v strežniku SQL Server vključujejo naslednje:
- Pravila objektov baze podatkov vzpostavijo sprožilci, ki povzročijo razveljavitev sprememb, če niso izpolnjena.
- Sprožilec bo pregledal podatke in jih po potrebi spremenil.
- Zahvaljujoč sprožilcem lahko uveljavimo celovitost podatkov.
- Podatki se pred vstavitvijo ali posodobitvijo preverijo s sprožilci.
- Sprožilci nam pomagajo pri vzdrževanju dnevnika zapisov.
- Ker jih ni treba prevajati vsakič, ko se zaženejo, sprožilci izboljšajo učinkovitost poizvedb SQL.
- Koda na strani odjemalca je zmanjšana s sprožilci, kar prihrani čas in delo.
- Vzdrževanje sprožilca je preprosto.
Slabost sprožilcev
Slabosti uporabe sprožilcev v strežniku SQL Server vključujejo naslednje:
- Samo sprožilci dovoljujejo uporabo razširjenih validacij.
- Uporabljajo se samodejni sprožilci, uporabnik pa se ne zaveda, kdaj se sprožijo. Posledično je težko odpraviti težave, ki se pojavijo v plasti baze podatkov.
- Stroški strežnika baze podatkov se lahko povečajo zaradi sprožilcev.
- V enem samem stavku CREATE TRIGGER lahko podamo isto sprožilno dejanje za več uporabniških dejanj, kot sta INSERT in UPDATE.
- Samo trenutna zbirka podatkov je na voljo za ustvarjanje sprožilcev, vendar se lahko še vedno sklicujejo na objekte zunaj baze podatkov.
Pogosto zastavljena vprašanja
V1: Kaj je sprožilec SQL?
odgovor:
Sprožilec SQL je objekt baze podatkov, ki je povezan s tabelo in samodejno izvede niz stavkov SQL, ko se v tej tabeli pojavi določen dogodek. Sprožilci se uporabljajo za uveljavljanje poslovnih pravil, vzdrževanje celovitosti podatkov in avtomatizacijo določenih dejanj v bazi podatkov. Sprožijo jih lahko različni dogodki, kot so vstavljanje, posodabljanje ali brisanje podatkov v tabeli, in omogočajo izvajanje dodatnih operacij na podlagi teh dogodkov.
java break
V2: Kako delujejo sprožilci SQL?
odgovor:
Sprožilci SQL so definirani s stavki SQL in so povezani z določeno tabelo. Ko se definirani sprožilni dogodek (npr. INSERT, UPDATE, DELETE) zgodi v tej tabeli, se povezana koda sprožilca samodejno izvede. Sprožilna koda je lahko sestavljena iz stavkov SQL, ki lahko manipulirajo s podatki v isti ali drugih tabelah, uveljavljajo omejitve ali izvajajo druga dejanja. Sprožilci se izvajajo v obsegu transakcije in jih je mogoče definirati tako, da se izvajajo pred ali po sprožilnem dogodku.
V3: Kakšne so prednosti uporabe sprožilcev SQL?
odgovor:
Prednosti uporabe sprožilcev SQL vključujejo:
Celovitost podatkov: Sprožilci vam omogočajo, da uveljavite zapletena poslovna pravila in omejitve na ravni baze podatkov, kar zagotavlja, da podatki ostanejo dosledni in točni.
Avtomatizacija: Sprožilci lahko avtomatizirajo ponavljajoče se ali zapletene naloge z izvajanjem vnaprej določenih dejanj, kadar koli se pojavi določen dogodek. To zmanjša potrebo po ročnem posegu in izboljša učinkovitost.
Revizijske sledi: Sprožilci se lahko uporabljajo za sledenje spremembam podatkov, kot je beleženje sprememb v ločeni revizijski tabeli. To pomaga pri revidiranju in vzdrževanju zgodovine sprememb podatkov.
Preverjanje podatkov: Sprožilci lahko izvajajo dodatna preverjanja veljavnosti podatkov, preden so vstavljeni, posodobljeni ali izbrisani, s čimer zagotovijo, da so v zbirki podatkov shranjeni samo veljavni in skladni podatki.