Con le SQL Stored Procedure puoi salvare le in­ter­ro­ga­zio­ni e le procedure più usate come blocchi di codice completi, da poter ri­chia­ma­re suc­ces­si­va­men­te ri­spar­mian­do tempo. In questo modo non devi ri­for­mu­la­re un’istru­zio­ne SQL ogni volta, ma puoi ri­chia­ma­re fa­cil­men­te la tua Stored Procedure.

Cosa sono le SQL Stored Procedure?

Lavorando con il lin­guag­gio di pro­gram­ma­zio­ne e di database SQL avrai bisogno di de­ter­mi­na­te istru­zio­ni SQL sempre uguali. Dover inserire ogni volta da zero istru­zio­ni complesse fa perdere tempo e comporta il rischio di errori. Le SQL Stored Procedure ti fa­ci­li­ta­no il lavoro con le in­ter­ro­ga­zio­ni complesse o che si ripetono re­go­lar­men­te. Basta salvare i blocchi di codice più usati e ri­chia­mar­li quando servono. In questo modo puoi au­to­ma­tiz­za­re le procedure ri­cor­ren­ti e mi­glio­ra­re con­si­de­re­vol­men­te l’ef­fi­cien­za della gestione dei dati.

Il vantaggio delle Stored Procedure è che in linea di principio possono salvare istru­zio­ni SQL e di­chia­ra­zio­ni di qualsiasi tipo da funzioni SQL, comandi SQL e operatori SQL con diversi parametri ed eseguire pressoché qualsiasi forma di attività. Crea le Stored Procedure per l’azione de­si­de­ra­ta e ri­chia­ma­le inserendo il nome della procedura nelle istru­zio­ni regolari come SQL UPDATE o SQL SELECT. Tra le funzioni che puoi au­to­ma­tiz­za­re rientrano ag­gior­na­men­ti, in­ter­ro­ga­zio­ni, eli­mi­na­zio­ne di dati o ge­ne­ra­zio­ne dei valori de­si­de­ra­ti.

Consiglio

Impara i principi di base di SQL: la nostra in­tro­du­zio­ne a SQL con esempi ti offre una pa­no­ra­mi­ca rapida delle funzioni e delle regole più im­por­tan­ti.

La sintassi delle Stored Procedure

La sintassi di una Stored Procedure dipende dal blocco di codice che si desidera salvare, pertanto può risultare più o meno complessa.

Creazione di una Stored Procedure semplice:

CREATE PROCEDURE Nome_procedura (Parametro1 tipoFile, Parametro2 tipoFile, …)
AS
BEGIN
(blocco di codice da salvare)
END;
sql

A seconda del sistema di gestione di database, la sintassi può pre­sen­tar­si anche come segue:

CREATE PROCEDURE Nome_procedura (Parametro1 tipoFile, Parametro2 tipoFile, …)
AS
(blocco di codice da salvare)
GO;
sql

Si usano i parametri seguenti:

  • CREATE PROCEDURE: con la parola chiave si definisce il blocco di codice da salvare. Il nome della procedura si usa per eseguirla sin­go­lar­men­te o inserirla in un’altra istru­zio­ne. I parametri possono com­pren­de­re diversi dati necessari, incluso il tipo di file.
  • AS: definisce l’inizio del blocco di codice da salvare come Stored Procedure.
  • BEGIN + END: seleziona l’inizio e la fine del blocco di codice da salvare.
  • GO: svolge la stessa funzione di END e con­tras­se­gna la fine del blocco di codice.

Ese­cu­zio­ne di una Stored Procedure:

EXEC Procedure_Name;
sql

Vantaggi e ap­pli­ca­zio­ni delle Stored Procedure

In linea di principio le SQL Stored Procedure ti con­sen­to­no di salvare tutte le istru­zio­ni SQL per poterle ri­chia­ma­re in un secondo momento come procedura completa. I vantaggi delle Stored Procedure sono:

  • Riu­ti­liz­zo del codice: lavorando con i database ti ri­tro­ve­rai a dover uti­liz­za­re ri­pe­tu­ta­men­te de­ter­mi­na­ti comandi e funzioni SQL. Se salvi le istru­zio­ni, semplici o complesse che siano, puoi riu­ti­liz­zar­le in qualsiasi momento, senza dover inserire di nuovo il codice.
  • Lavoro più semplice con i database: so­prat­tut­to per le attività complesse, le Stored Procedure con­sen­to­no di sud­di­vi­de­re procedure più com­pli­ca­te in più procedure. Trattano i blocchi di codice come moduli in cui viene inserita l’istru­zio­ne vera e propria.
  • Più ef­fi­cien­za, pre­sta­zio­ni migliori: i blocchi di codice salvati fa­ci­li­ta­no la creazione di istru­zio­ni SQL, au­men­tan­do quindi le pre­sta­zio­ni nei database più corposi.
  • Più sicurezza: as­se­gnan­do au­to­riz­za­zio­ni alle procedure salvate ti assicuri che i dati sensibili e critici per la tua attività possano essere ri­chia­ma­ti o elaborati solo da chi dispone dei permessi di accesso.

Tra le ap­pli­ca­zio­ni pratiche per diversi settori troviamo tra l’altro:

  • Au­to­ma­tiz­za­re i processi d’ordine e ag­gior­na­re i dati dei clienti
  • Mo­ni­to­ra­re e con­trol­la­re le tran­sa­zio­ni fi­nan­zia­rie sospette o calcolare gli interessi sui prestiti
  • Creare offerte au­to­ma­ti­ca­men­te in base a dati dei clienti, com­por­ta­men­to d’acquisto, volumi degli ordini e regione
  • Calcolare le prov­vi­gio­ni dei col­la­bo­ra­to­ri e delle col­la­bo­ra­tri­ci in base al ren­di­men­to
  • Creare rapporti fi­nan­zia­ri e re­gi­stra­re tran­sa­zio­ni
  • Tracciare, mo­ni­to­ra­re e sin­cro­niz­za­re le scorte di magazzino e gli ordini in entrata

Esempi pratici delle SQL Stored Procedure

Di seguito trovi due esempi pratici che il­lu­stra­no il fun­zio­na­men­to delle Stored Procedure.

Ri­chia­ma­re tutti i clienti

Vogliamo ri­chia­ma­re in una tabella “Clienti” tutti i dati dei clienti. Pro­ce­dia­mo come indicato di seguito:

CREATE PROCEDURE SelectTuttiClienti
AS
BEGIN
SELECT * FROM Clienti
END;
sql

Se­le­zio­na­re gli ordini di una città

Da una tabella “Ordini” vogliamo ri­chia­ma­re tutti gli ordini pro­ve­nien­ti da una de­ter­mi­na­ta città. Pro­ce­dia­mo come indicato di seguito:

CREATE PROCEDURE SelectTuttiGliOrdiniDiRoma
AS
BEGIN
SELECT * FROM Ordini WHERE Città = 'Roma'
END;
sql

Al­ter­na­ti­ve alle SQL Stored Procedure

SQL ti offre diverse al­ter­na­ti­ve con un fun­zio­na­men­to simile a quello delle Stored Procedure, tra cui:

  • UDF (User Defined Function): con le SQL UDF, usando la parola chiave CREATE FUNCTION puoi creare funzioni per­so­na­liz­za­te e salvarle come blocchi di codice. È così possibile integrare in­ter­ro­ga­zio­ni complesse in altre istru­zio­ni SQL come funzioni pre­de­fi­ni­te senza inserire il codice completo.
  • VIEW: le VIEW ti con­sen­to­no di creare tabelle virtuali vuote per ana­liz­za­re record in base a parametri pre­de­fi­ni­ti. Puoi inserire le VIEW come elemento nelle istru­zio­ni SQL (come le UDF o le Stored Procedure).
Vai al menu prin­ci­pa­le