TOP

SQL Stored Procedures pour SQL Server

Qu'est-ce que Stored Procedure ?

Stored Procedure (Stored Procedure) est un code SQL préparé qui peut être stocké afin que le code puisse être utilisé encore et encore.

Ainsi, si vous avez une requête SQL que vous écrivez encore et encore, enregistrez-la en tant que procédure stockée, puis appelez-la simplement pour l'exécuter.

Vous pouvez également transmettre des paramètres à une procédure stockée afin que celle-ci puisse agir sur les valeurs de paramètres transmises.


Stored Procedure Syntaxe

CREATE PROCEDURE procedure_name
AS 
sql_statement
GO

Exécution de Stored Procedure

EXEC procedure_name

Base de données de démonstration

Voici un exemple de la table "Customers" ("Clients") de la base de données "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 Exemple

La requête SQL suivante crée une procédure stockée nommée « SelectAllCustomers » qui sélectionne tous les enregistrements de la table Customers :

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO

Exécutons la procédure stockée ci-dessus comme suit :

EXEC SelectAllCustomers

Stored Procedure avec un paramètre

La requête SQL suivante crée une procédure stockée qui sélectionne les clients d'une ville spécifique dans la table Customers :

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

Exécutons la procédure stockée ci-dessus comme suit :

EXEC SelectAllCustomers @City = 'London'

Stored Procedure avec de nombreux paramètres

Il est très simple de configurer plusieurs paramètres, à savoir lister chaque paramètre et type de données séparés par une virgule comme indiqué ci-dessous.

L'instruction SQL suivante crée une procédure stockée qui sélectionne les clients d'une ville spécifique avec un code postal spécifique dans la table Customers :

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

Exécutons la procédure stockée ci-dessus comme suit :

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