# SQL STORED PROCEDURE: come funziona l’automazione con SQL

Con le SQL Stored Procedure puoi salvare **le interrogazioni e le procedure più usate come blocchi di codice completi**, da poter richiamare successivamente risparmiando tempo. In questo modo non devi riformulare un’istruzione SQL ogni volta, ma puoi richiamare facilmente la tua Stored Procedure.

## Cosa sono le SQL Stored Procedure?

Lavorando con il linguaggio di programmazione e di database [SQL](https://www.ionos.it/digitalguide/server/know-how/che-cose-sql/) avrai bisogno di determinate istruzioni SQL sempre uguali. Dover inserire ogni volta da zero istruzioni complesse fa perdere tempo e comporta il rischio di errori. Le SQL Stored Procedure ti facilitano il lavoro con le interrogazioni complesse o che si ripetono regolarmente. Basta salvare i blocchi di codice più usati e richiamarli quando servono. In questo modo puoi **automatizzare le procedure ricorrenti** e migliorare considerevolmente l’efficienza della gestione dei dati.

Il vantaggio delle Stored Procedure è che in linea di principio possono salvare **istruzioni SQL e dichiarazioni di qualsiasi tipo** da funzioni SQL, [comandi SQL](https://www.ionos.it/digitalguide/server/configurazione/comandi-sql/) e [operatori SQL](https://www.ionos.it/digitalguide/server/configurazione/operatori-sql/) con diversi parametri ed eseguire pressoché qualsiasi forma di attività. Crea le Stored Procedure per l’azione desiderata e richiamale inserendo il nome della procedura nelle istruzioni regolari come [SQL UPDATE](https://www.ionos.it/digitalguide/server/configurazione/sql-update/) o [SQL SELECT](https://www.ionos.it/digitalguide/server/configurazione/sql-select/). Tra le funzioni che puoi automatizzare rientrano aggiornamenti, interrogazioni, eliminazione di dati o generazione dei valori desiderati.

Consiglio Impara i principi di base di SQL: la nostra [introduzione a SQL con esempi](https://www.ionos.it/digitalguide/server/configurazione/introduzione-a-sql-mediante-esempi/) ti offre una panoramica rapida delle funzioni e delle regole più importanti.

## 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**:

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

A seconda del [sistema di gestione di database](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/sistema-di-gestione-di-base-di-dati-dbms/), la sintassi può presentarsi anche come segue:

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

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 singolarmente o inserirla in un’altra istruzione. I parametri possono comprendere 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 contrassegna la fine del blocco di codice.

Esecuzione di una Stored Procedure:

```sql
EXEC Procedure_Name;
```

## Vantaggi e applicazioni delle Stored Procedure

In linea di principio le SQL Stored Procedure ti consentono di salvare tutte le istruzioni SQL per poterle richiamare in un secondo momento come procedura completa. I vantaggi delle Stored Procedure sono:

- **Riutilizzo del codice**: lavorando con i database ti ritroverai a dover utilizzare ripetutamente determinati comandi e funzioni SQL. Se salvi le istruzioni, semplici o complesse che siano, puoi riutilizzarle in qualsiasi momento, senza dover inserire di nuovo il codice.
- **Lavoro più semplice con i database**: soprattutto per le attività complesse, le Stored Procedure consentono di suddividere procedure più complicate in più procedure. Trattano i blocchi di codice come moduli in cui viene inserita l’istruzione vera e propria.
- **Più efficienza, prestazioni migliori**: i blocchi di codice salvati facilitano la creazione di istruzioni SQL, aumentando quindi le prestazioni nei database più corposi.
- **Più sicurezza**: assegnando autorizzazioni alle procedure salvate ti assicuri che i dati sensibili e critici per la tua attività possano essere richiamati o elaborati solo da chi dispone dei permessi di accesso.

Tra le applicazioni pratiche per diversi settori troviamo tra l’altro:

- Automatizzare i processi d’ordine e aggiornare i dati dei clienti
- Monitorare e controllare le transazioni finanziarie sospette o calcolare gli interessi sui prestiti
- Creare offerte automaticamente in base a dati dei clienti, comportamento d’acquisto, volumi degli ordini e regione
- Calcolare le provvigioni dei collaboratori e delle collaboratrici in base al rendimento
- Creare rapporti finanziari e registrare transazioni
- Tracciare, monitorare e sincronizzare le scorte di magazzino e gli ordini in entrata

## Esempi pratici delle SQL Stored Procedure

Di seguito trovi due esempi pratici che illustrano il funzionamento delle Stored Procedure.

### Richiamare tutti i clienti

Vogliamo richiamare in una tabella “Clienti” tutti i dati dei clienti. Procediamo come indicato di seguito:

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

### Selezionare gli ordini di una città

Da una tabella “Ordini” vogliamo richiamare tutti gli ordini provenienti da una determinata città. Procediamo come indicato di seguito:

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

## Alternative alle SQL Stored Procedure

SQL ti offre diverse alternative con un funzionamento 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 personalizzate e salvarle come blocchi di codice. È così possibile integrare interrogazioni complesse in altre istruzioni SQL come funzioni predefinite senza inserire il codice completo.
- **VIEW**: le VIEW ti consentono di creare tabelle virtuali vuote per analizzare record in base a parametri predefiniti. Puoi inserire le VIEW come elemento nelle istruzioni SQL (come le UDF o le Stored Procedure).


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/sql-stored-procedure/](https://www.ionos.it/digitalguide/server/configurazione/sql-stored-procedure/) for AI/LLM consumption.