lagrede prosedyrer og triggere i en database er lignende konstruksjoner. De kan både utføre de samme SQL-setninger. Den største forskjellen mellom de to er hvordan de blir henrettet . En lagret prosedyre må utføres av en bruker , mens en trigger er utført av systemet som følge av en hendelse . Hendelser som forårsaker utløser skal aktiveres inkludere data inserts , oppdateringer og sletter . En ulempe med å bruke utløser i stedet for lagrede prosedyrer er at de ikke kan akseptere parametre . Instruksjoner
lagrede prosedyrer
en
Bruk oppstillingen nedenfor til å lage en enkel lagret prosedyre med noen parametere
CREATE PROSEDYRE mySprocASBEGIN - . SQL StatementsEND
2
Opprette en lagret prosedyre med parametre ved å kopiere koden under. Å passere en parameter med en standard verdi , inkluderer et likhetstegn og verdien ønsket
CREATE PROSEDYRE mySproc { @ Param1 varchar ( 50 ) , @ Param2 datetime = NULL , @ Param3 int = 0 } ASBEGIN . - SQL StatementsEND
3
Update eller endre en lagret prosedyre ved hjelp av " Alter "-kommandoen fra eksempelet nedenfor
ALTER pROSEDYRE mySprocASBEGIN - . SQL StatementsEND
4
Fjern en lagret prosedyre fra databasen med " Drop "-kommandoen som vist nedenfor
DROP pROSEDYRE mySproc ; .
5
Execute din lagret prosedyre innenfor SQL by kjører kommandoene nedenfor. Hvis du inkludere parametere , sette dem i den rekkefølgen som er forventet av den lagrede prosedyren . Noen strenger vedtatt i skal være i apostrof
Eksempel uten parametere: EXEC dbo.mySproc ;
Eksempel med parametre: . EXEC dbo.mySproc ' streng data ' , '1 /1 /. 1900 ' , 1;
Triggers
6
Legg en grunnleggende trigger ved å kopiere koden under
CREATE tRIGGER myTriggerON myTableAFTER INSERTASBEGIN - SQL StatementsEND
7
Lag en trigger som vil løpe etter flere hendelser med kommandoene nedenfor
CREATE tRIGGER myTriggerON myTableAFTER INSERT, UPDATE , DELETEASBEGIN - . SQL StatementsEND
8
Endre ditt trigger ved hjelp av " Alter " kommandoen
ALTER tRIGGER myTriggerON myTableAFTER INSERTASBEGIN - . SQL StatementsEND
9
Utfør uttalelser fra en trigger i stedet for kommandoer som forårsaker hendelsen ved å bruke " i stedet for" kommandoen. For eksempel, hvis mySproc oppdatert bordet MyTable , ville det føre til en UPDATE hendelse. Hvis du hadde en trigger satt opp for å fange den hendelsen som inkluderte en "istedenfor" -kommandoen, vil koden fra avtrekkeren kjøre , og koden fra den lagrede prosedyren ville aldri utføre .
CREATE TRIGGER myTriggerON myTableINSTEAD OF UPDATEASBEGIN - SQL StatementsEND
10
Fjern trigger fra databasen med " Drop "-kommandoen som vist nedenfor
DROP tRIGGER myTrigger ;
.