diff --git a/vezbe/11.md b/vezbe/11.md index 8b13789..aec6a88 100644 --- a/vezbe/11.md +++ b/vezbe/11.md @@ -1 +1,55 @@ +# Vežbe 11 +- [Vežbe 10](#vežbe-11) + - [Procedure](#procedure) + - [Trigeri](#trigeri) + - [Kursori](#kursori) + +## Procedure + +Storna procedura je spremljeni SQL kod koji se može sačuvati, tako da može biti korišćen iznova i iznova. + +Primer: ako imamo neki SQL upit koji izvršavamo stalno, ili više DML i DQL naredbi koji izvršavamo sekvencijalno, možemo ih spakovati unutar procedure i onda pozivati nju umesto da pišemo isti kod ponovo. + +Osobine: +- Procedura nema povratnu vrednost +- Možemo joj se prosleđivati ulazni parametri +- Procedura podržava i izlazne parametre + +```sql +CREATE PROCEDURE procedure_name +AS +BEGIN + -- sql statement +END +GO; +``` + +Procedura moze imati i ulazne i izlazne parametre + +```sql +CREATE PROCEDURE procedure_name(@par1 type, @par2 type, @par3 type OUTPUT) +AS +BEGIN + -- sql statement +END +GO; +``` + +Primer poziva procedure + +```sql +EXEC procedure_name @par1, @par2, @par3 +``` + +Parametar oznacen sa **OUTPUT**, označava da se kroz njega može vratiti vrednost naredbi koja je pozvala proceduru. + +**Zadaci** + +- Kreirati proceduru koja vraca prosek i broj nepolozenih ispita za odredjenog studenta +- Napisati proceduru za upis ocene +- + +## Trigeri + +## Kursori