Proceduri stocate



Când se foloseşte SQL Server la dezvoltarea aplicaţiilor se poate vorbi de două opţiuni de bază pentru stocarea şi executarea programelor. Programele pot fi memorate local la nivelul aplicaţiilor care trimit comenzi către SQL Server şi prelucrează rezultatele returnate de acesta. A doua opţiune presupune dezvoltarea şi înregistrarea programelor ca proceduri stocate în SQL Server şi crearea de aplicaţii care apelează aceste proceduri şi prelucrează rezultatele returnate de acestea. Cea din urmă variantă este cea adoptată de mine în realizarea aplicaţiei.
Procedurile stocate din SQL Server sunt similare procedurilor din alte limbaje de programare, căci acceptă parametrii de intrare şi returnează valori prin parametrii de ieşire către un program apelant.
Utilizarea procedurilor stocate prezintă mai multe avantaje faţă de variantă programelor stocate la nivelul aplicaţiilor utilizator:
-programare modulară- o procedură stocată poate fi creată o singură dată şi apelată de mai multe ori din mai multe aplicaţii;

-performanţa îmbunătăţită - dacă sunt programe cu volum mare de cod, procedurile stocate sunt mai eficiente deoarece compilarea şi optimizarea lor se face o singură dată la crearea procedurii şi sunt memorate într-o formă direct executabilă prin care se evită repetarea fazelor de compilare şi optimizare la fiecare apel al procedurii;


-reducerea traficului de reţea - se înlocuiesc sute de linii de cod printr-o singură linie de comandă care apelează procedura stocată;
-oferă un mecanism suplimentar de securitate -utilizatorii nu au acces direct la codul procedurilor stocate, iar dreptul de execuţie al unei proceduri poate fi acordat sau nu de către administratorul bazei de date.
Sintaxa comenzii este următoarea:
CREATE PROCEDURE nume_procedura
AS
instructiuni_sql
O procedură stocată se poate lansa în execuţie prin comanda EXECUTE.
Comanda simetrică celei de creare a unei vederi este DROP PROCEDURE, care şterge procedura respectivă. Sinataxa comenzii este următoarea:
DROP PROCEDURE nume_procedura