Skip to main content

Creazione di stored procedure per il tuo SQL Server

How to Write Stored Procedure in SQL Server for Beginners (Aprile 2025)

How to Write Stored Procedure in SQL Server for Beginners (Aprile 2025)
Anonim

Microsoft SQL Server fornisce il meccanismo di stored procedure per semplificare il processo di sviluppo del database raggruppando le istruzioni Transact-SQL in blocchi gestibili. Le stored procedure sono apprezzate dalla maggior parte degli sviluppatori di SQL Server che ritengono che i vantaggi in termini di efficienza e sicurezza che raccolgono meritino l'investimento iniziale nel tempo.

Vantaggi dell'utilizzo di stored procedure

Perché uno sviluppatore dovrebbe utilizzare le stored procedure?

Ecco i principali vantaggi di questa tecnologia:

  • Esecuzione precompilata: SQL Server compila ogni stored procedure una volta e quindi riutilizza il piano di esecuzione. Ciò si traduce in un enorme incremento delle prestazioni quando le stored procedure vengono chiamate ripetutamente.
  • Traffico client / server ridotto: Se la larghezza di banda della rete è un problema nel tuo ambiente, sarai felice di apprendere che le stored procedure possono ridurre lunghe query SQL a una singola linea che viene trasmessa sul filo.
  • Riutilizzo efficiente del codice e astrazione di programmazione: Le stored procedure possono essere utilizzate da più utenti e programmi client. Se li utilizzi in modo pianificato, scoprirai che il ciclo di sviluppo richiede meno tempo.
  • Controlli di sicurezza avanzati: È possibile concedere agli utenti il ​​permesso di eseguire una stored procedure indipendentemente dalle autorizzazioni della tabella sottostante.

Le procedure memorizzate sono simili alle funzioni definite dall'utente, ma ci sono sottili differenze.

Struttura

Le procedure memorizzate sono simili ai costrutti visti in altri linguaggi di programmazione.

Accettano i dati sotto forma di parametri di input specificati al momento dell'esecuzione. Questi parametri di input (se implementati) vengono utilizzati nell'esecuzione di una serie di istruzioni che producono alcuni risultati. Questo risultato viene restituito all'ambiente chiamante tramite l'uso di un recordset, parametri di output e un codice di ritorno.

Potrebbe sembrare un boccone, ma scoprirai che le stored procedure sono in realtà abbastanza semplici.

Esempio

Diamo un'occhiata a un esempio pratico relativo alla tabella denominata inventario mostrato in fondo a questa pagina. Queste informazioni vengono aggiornate in tempo reale e i responsabili del magazzino controllano costantemente i livelli dei prodotti archiviati nel loro magazzino e disponibili per la spedizione. In passato, ogni gestore eseguiva query simili alle seguenti:

SELEZIONA Prodotto, QuantitàDALL'INVIOWHERE Warehouse = 'FL'

Ciò ha comportato prestazioni inefficienti su SQL Server. Ogni volta che un manager del magazzino eseguiva la query, il server del database era costretto a ricompilare la query ed eseguirla da zero. Inoltre, richiedeva al responsabile del magazzino la conoscenza di SQL e le autorizzazioni appropriate per accedere alle informazioni della tabella.Invece, il processo può essere semplificato attraverso l'uso di una stored procedure. Ecco il codice per una procedura denominata sp_GetInventory che recupera i livelli di inventario per un determinato magazzino.

CREATE PROCEDURE sp_GetInventory@location varchar (10)COMESELEZIONA Prodotto, QuantitàDALL'INVIOWHERE Warehouse = @location

Il gestore di magazzino della Florida può quindi accedere ai livelli di inventario emettendo il comando:

ESEGUI sp_GetInventory 'FL'

Il responsabile di magazzino di New York può utilizzare la stessa stored procedure per accedere all'inventario di quell'area:

ESEGUI sp_GetInventory 'NY'

Certo, questo è un semplice esempio, ma i benefici dell'astrazione possono essere visti qui. Il responsabile del magazzino non ha bisogno di capire l'SQL o il funzionamento interno della procedura. Dal punto di vista delle prestazioni, la stored procedure fa miracoli. SQL Server crea una volta un piano di esecuzione e quindi lo riutilizza collegando i parametri appropriati al momento dell'esecuzione.Ora che hai appreso i vantaggi delle stored procedure, esci e usali.

Prova alcuni esempi e misura i miglioramenti delle prestazioni raggiunti: sarai sbalordito!

Tabella delle scorte

IDProdottoMagazzinoQuantità
142Fagioli verdiNY100
214PiselliFL200
825MaisNY140
512fagioli di LimaNY180
491PomodoriFL80
379AnguriaFL85