lagrade procedurer och triggers i en databas finns liknande konstruktioner . De kan båda utföra samma SQL-satser . Den största skillnaden mellan de två är hur de utförs . En lagrad procedur måste utföras av en användare , medan en utlösare exekveras av systemet som ett resultat av en händelse. Händelser som orsakar utlöser att aktiveras inkludera data skär , uppdateringar och borttagningar . En nackdel med att använda triggers istället för lagrade procedurer är att de inte kan acceptera parametrar . Instruktioner
lagrade procedurer
1
Använd uttalandet nedan för att skapa en grundläggande lagrad procedur utan parametrar
SKAPA FÖRFARANDE mySprocASBEGIN - . SQL StatementsEND
2
Skapa en lagrad procedur med parametrar genom att kopiera koden nedan . För att skicka en parameter med ett standardvärde , inkluderar ett likhetstecken och värdet önskade
SKAPA FÖRFARANDE mySproc { @ Param1 varchar ( 50 ) , @ param2 datetime = null , @ Param3 int = 0 } ASBEGIN . - SQL StatementsEND Addera 3
Update eller ändra en lagrad procedur med hjälp av " Alter " kommandot från exemplet nedan
ALTER fÖRFARANDE mySprocASBEGIN - . SQL StatementsEND
4
bort en lagrad procedur från databasen med " Drop " -kommandot enligt nedan
DROP fÖRFARANDE mySproc , .
5
Kör din lagrad procedur i SQL med kör nedanstående kommandon . Om du inkluderar parametrar , lägg dem i den ordning som förväntas av den lagrade proceduren . Eventuella strängar passerade i bör vara inom enkla citattecken
Exempel utan parametrar : EXEC dbo.mySproc ;
Exempel med parametrar : . EXEC dbo.mySproc ' strängdata ' , '1 /1 /. 1900 " , 1 ,
Triggers
6
Lägg ett grundläggande utlösare genom att kopiera koden nedan
SKAPA tRIGGER myTriggerON myTableAFTER INSERTASBEGIN - SQL StatementsEND
7
Gör en trigger som kommer att köra efter flera händelser med kommandona nedan
SKAPA tRIGGER myTriggerON myTableAFTER INSERT , UPDATE , DELETEASBEGIN - . SQL StatementsEND
8
Ändra din trigger med " Alter " kommandot
ALTER tRIGGER myTriggerON myTableAFTER INSERTASBEGIN - . SQL StatementsEND
9
Utför uttalanden från en utlösare i stället för de kommandon som orsakar händelsen med hjälp av "istället för " kommandot . Till exempel, om mySproc uppdateras tabellen mytable , skulle det orsaka en UPDATE händelse. Om du hade en trigger som inrättats för att fånga den händelse som inkluderade en "istället för " kommando , skulle koden från utlösaren kör , och koden från den lagrade proceduren skulle aldrig köra .
SKAPA myTableINSTEAD TRIGGER myTriggerON AV UPDATEASBEGIN - SQL StatementsEND
10
bort din trigger från databasen med " Drop " -kommandot enligt nedan
DROP tRIGGER myTrigger ,
.