Chapitre 3 (1)
Chapitre 3 (1)
Chapitre 3 (1)
1) Définition
Les procédures stockées (Stored Procedure) sont des ensembles
d’instructions SQL, pouvant être exécutés par simple appel de leur nom à
l’aide de l’instruction EXECUTE. Les procédures stockées sont de
véritables programmes qui peuvent recevoir des paramètres et renvoyer
des valeurs.
2) Pourquoi Utiliser des procédures stockées
✓ les procédures stockées sont exécutées sur le serveur.
✓ L’exécution des Procédures Stockées est dynamique par contre
l’exécution des requêtes est statique.
✓ Une autre bonne raison d'utiliser les procédures stockées est : une
fois qu'elles sont définies, elles font partie de la base de données.
3) Création d’une procédure stockée
Le langage SQL permet de programmer ces procédures selon la syntaxe
suivante :
CREATE PROCEDURE le nom de la procédure
(...) les paramètres d’entrée et de sortie séparés par des virgules
AS BEGIN
DECLARE ... les variables locales
... les instructions
END
Exemple :
CREATE PROCEDURE Ajout_Client (@cd nchar(10), @cf int)
AS BEGIN
insert into client values(@cd,@cf)
END
Les instructions AS BEGIN et END sont les délimiteurs du code à utiliser
par la procédure stockée.
Toutes les instructions comprises entre ces deux mots clés seront prises
en compte et exécutées par la procédure stockée.
Les paramètres de la procédure.
Pour déclarer un paramètre, il suffit donc de le spécifier:
• son nom : @Parameter (n’oubliez pas le @), qui sera utilisable
comme une variable dans la procédure stockée.
• Un type de donnée, choisi parmi les types SQL ou les types
utilisateurs.
• Une direction, en mettant OUTPUT pour les paramètres en sortie et
INPUT pour les paramètres en entrée (optionnel) derrière le nom
d’un paramètre.
• La valeur de chaque paramètre déclaré doit être fournie par
l'utilisateur lors de l'exécution de la procédure.
Exécution de procédures stockées
L’exécution d’une procédure mémorisée se fait par appel grâce à
l’instruction SQL EXECute
Syntaxe :
EXECUTE nom_de_procédure
ou
EXEC nom_de_procédure
Remarque :
L’appel pour exécution d’une procédure stockée peut se faire avec
l'utilitaire sql ou tout langage supportant l’envoi de requêtes SQL tel
que Visual Basic et Visual C#.
4) Exemple général :
Exemple de déclaration d’une procédure avec paramètres en entrée
CREATE PROC InfoDuClient @numero INT -- ne pas oublier de
préciser le type
AS begin
SELECT * FROM clients
WHERE clt_num = @numero
End
Exécution :
Pour avoir les informations relatives au client 12
EXEC InfoDuClient 12
-- 12 est la valeur du paramètre
Exemple de déclaration d’une procédure avec paramètres en sortie
Certaines procédures peuvent retourner une (ou plusieurs) valeurs (s).
Dans ce cas, préciser OUTPUT après le nom et le type du paramètre.
Autre exemple avec un paramètre de sortie :
CREATE PROC NbClients @resultat INT OUTPUT
AS begin
SET @resultat = (SELECT COUNT(*) FROM clients)
End
Exécution :
DECLARE @NbClients INT
EXEC NbClients @NbClients OUTPUT
Exemple de déclaration d’une procédure avec paramètres en
entrée et en sortie
CREATE PROC NbClients @vl char(10), @resultat INT OUTPUT
AS begin
SET @resultat = (SELECT COUNT(*) FROM clients where ville=@vl)
End
Exécution :
DECLARE @NbClients INT
EXEC NbClients ‘laayoune’, @NbClients OUTPUT
5) Modifier une procédure stockée :
ALTER PROC InfoDuClient
(...) -- les parametres
AS
... -- nouveau corps
6) Supprimer une procédure stockée :
DROP PROCEDURE InfoDuClient