TOP

SQL Stored Procedures per SQL Server

Cos'è Stored Procedure?

Stored Procedure (Stored Procedure) è un codice SQL preparato che può essere memorizzato in modo che il codice possa essere utilizzato più e più volte.

Pertanto, se hai una query SQL che scrivi più e più volte, salvala come procedura memorizzata e quindi chiamala semplicemente per eseguirla.

È inoltre possibile passare parametri a una procedura memorizzata in modo che la procedura memorizzata possa agire sui valori dei parametri passati.


Stored Procedure Sintassi

CREATE PROCEDURE procedure_name
AS 
sql_statement
GO

Esecuzione di Stored Procedure

EXEC procedure_name

Banca dati dimostrativa

Quello che segue è un esempio della tabella "Customers" ("Clienti") del database "Northwind":

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Stored Procedure Esempio

La seguente query SQL crea una procedura memorizzata denominata "SelectAllCustomers" che seleziona tutti i record dalla tabella Clienti:

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO

Eseguiamo la procedura memorizzata sopra come segue:

EXEC SelectAllCustomers

Stored Procedure con un parametro

La seguente query SQL crea una procedura memorizzata che seleziona i clienti di una città specifica dalla tabella Clienti:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO

Eseguiamo la procedura memorizzata sopra come segue:

EXEC SelectAllCustomers @City = 'London'

Stored Procedure con molti parametri

È molto semplice configurare più parametri, ovvero elencare ciascun parametro e tipo di dati separati da una virgola come mostrato di seguito.

La seguente istruzione SQL crea una procedura memorizzata che seleziona i clienti di una città specifica con un codice postale specifico dalla tabella Clienti:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO

Eseguiamo la procedura memorizzata sopra come segue:

EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP'