Stored procedure SQL per SQL Server
Che cos'è una procedura archiviata?
Una stored procedure è un codice SQL preparato che è possibile salvare, in modo che il codice possa essere riutilizzato più e più volte.
Quindi, se hai una query SQL che scrivi più e più volte, salvala come procedura memorizzata e quindi chiamala per eseguirla.
È inoltre possibile passare parametri a una stored procedure, in modo che la stored procedure possa agire in base ai valori dei parametri passati.
Sintassi della procedura memorizzata
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
Eseguire una procedura archiviata
EXEC procedure_name;
Database dimostrativo
Di seguito è riportata una selezione dalla tabella "Clienti" nel database di esempio Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Esempio di procedura memorizzata
La seguente istruzione SQL crea una procedura memorizzata denominata "SelectAllCustomers" che seleziona tutti i record dalla tabella "Clienti":
Esempio
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
Eseguire la procedura memorizzata sopra come segue:
Esempio
EXEC SelectAllCustomers;
Stored procedure con un parametro
La seguente istruzione SQL crea una stored procedure che seleziona i clienti da una determinata città dalla tabella "Clienti":
Esempio
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30)
AS
SELECT * FROM Customers WHERE
City = @City
GO;
Eseguire la procedura memorizzata sopra come segue:
Esempio
EXEC SelectAllCustomers @City = 'London';
Stored procedure con più parametri
L'impostazione di più parametri è molto semplice. Elenca semplicemente ogni parametro e il tipo di dati separati da una virgola come mostrato di seguito.
La seguente istruzione SQL crea una procedura memorizzata che seleziona i clienti da una città particolare con un codice postale particolare dalla tabella "Clienti":
Esempio
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE
City = @City AND PostalCode = @PostalCode
GO;
Eseguire la procedura memorizzata sopra come segue:
Esempio
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';