Proceduri stocate SQL




Procedurile stocate din SQL Server sunt similare procedurilor din alte limbaje de programare in sensul ca accepta parametrii de intrare, oferind valori prin parametrii de iesire catre aplicatiile apelante, continand instructiuni de programare care efectueaza operatii in baza de date, putand apela ale proceduri stocate.
La dezvolarea aplicatiilor( exemplu client/server) se poate vorbi despre doua moduri de stocare si executare a programelor:
. Programele pot fi memeorate local la nivelul aplicatiilor care trimit comenzi catre SQL Server si prelucreaza rezultatele returnate de acesta
. Dezvoltarea si inregistrarea programelor ca proceduri stocate in SQL Server si crearea de aplicatii care apeleaza aceste proceduri si prelucreaza rezultatele returnate de acestea.
Avantajele oferite de utilizarea procedurilor stocate fata de varianta programelor stocate la nivelul aplicatiilor utilizator sunt:
. Programare modulara: o procedura stocata este creata o singura data si apelata de mai multe ori si mai multe aplicatii
. Performanta imbunatatita: compilarea si optimizarea procedurilor stocate se face o singura data la crearea procedurii si sunt pastrate intr-o forma direct executabila astfel incat sa se evite fazele de comilare si optimizare la fiecare apel de procedura.



. Reducerea traficului in retea: o prelucrare presupune executia a sute de liniii de cod. In cazul procedurilor stocate acest luxru este realizat printr-o singura linie de comanda, evitandu-se astfel transmiterea prin retea a intregului cod pentru fiecare executie.
. Ofera mecanism suplimentar de securitate: utilizatorii nu au acces direct la codul procedurilor, iar dreptul de executie a unei proceduri poate fi acordat in functie de statutul fiecarui utilizator de catre administratorul bazei de date.

Sintaxa unei proceduri este urmatoarea:

CREATE PROC[EDURE ] nume_procedura [; numar ]
[
{ @parametru tip_de_data} [ VARYING] = valoare_implicita ]
[ OUTPUT ]
] [,... n]
[WITH
{ RECOMPILE
| ENCRYPTION
| RECOMPILE, ENCRYPTION }
]
[ FOR REPLICATION ]
AS

Instructiuni_sql [. n ]
Lansarea in executie a unei proceduri stocate se face cu comnda EXECUTE. La primul apel de executie a procedurii stocate are loc compilarea si construirea unui plan de executie optimizat.