A stored procedure is a prewritten block of SQL code that can be stored in a database for reuse.
By saving frequently used SQL queries as stored procedures, you can easily execute them whenever needed.
Additionally, stored procedures can accept parameters, allowing them to adapt their actions based on the values passed to them.
CREATE PROCEDURE procedure_name AS sql_statement GO; |
EXEC procedure_name; |
Here’s an excerpt from the “Customers” table in the Northwind sample database:
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 |
This SQL statement creates a stored procedure named “SelectAllCustomers” which retrieves all records from the “Customers” table:
CREATE PROCEDURE SelectAllCustomers AS SELECT * FROM Customers GO; |
Execute the previously mentioned stored procedure in the following manner:
EXEC SelectAllCustomers; |
This SQL statement creates a stored procedure that retrieves customers from a specific city from the “Customers” table:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30) AS SELECT * FROM Customers WHERE City = @City GO; |
Execute the aforementioned stored procedure as demonstrated below:
EXEC SelectAllCustomers @City = ‘London’; |
Creating a stored procedure with multiple parameters is straightforward. Simply list each parameter along with its data type, separated by commas, as illustrated below:
The subsequent SQL statement generates a stored procedure that retrieves customers from a specific city and postal code from the “Customers” table:
CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10) AS SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode GO; |
Execute the aforementioned stored procedure as follows:
EXEC SelectAllCustomers @City = ‘London’, @PostalCode = ‘WA1 1DP’;
|