Avec les pro­cé­dures stockées SQL (SQL Stored Pro­ce­dures en anglais), vous en­re­gis­trez les requêtes et pro­cé­dures fré­quem­ment utilisées sous forme de blocs de code complets que vous pouvez appeler ul­té­rieu­re­ment de manière efficace, ce qui vous fait gagner du temps ! Ainsi, vous n’avez pas besoin de re­for­mu­ler une ins­truc­tion SQL à chaque fois ; il vous suffit d’appeler la procédure stockée que vous avez en­re­gis­trée.

Que sont les SQL Stored Pro­ce­dures ?

Lorsque vous utilisez le langage de pro­gram­ma­tion et de base de données SQL, vous aurez très souvent besoin de certaines ins­truc­tions SQL. Or, saisir à chaque fois des ins­truc­tions complexes prend du temps et est source d’erreurs. Une procédure stockée SQL vous facilite donc le travail avec les requêtes complexes ou ré­gu­lières : il vous suffit d’en­re­gis­trer les blocs de code fré­quem­ment utilisés et de les appeler en cas de besoin. De cette manière, vous pouvez au­to­ma­ti­ser les pro­cé­dures ré­pé­ti­tives et optimiser con­si­dé­ra­ble­ment la gestion de vos données.

L’avantage des pro­cé­dures stockées : vous pouvez en fait stocker tout type d’ins­truc­tion SQL et de dé­cla­ra­tion de fonctions SQL, commandes SQL et opé­ra­teurs SQL avec dif­fé­rents pa­ra­mètres, et faire exécuter presque toute forme de tâche. Vous créez des pro­cé­dures stockées pour l’action souhaitée et vous les appelez en insérant le nom de la procédure dans des ins­truc­tions ré­gu­lières telles que SQL UPDATE ou SQL SELECT. Parmi les fonctions que vous pouvez ainsi au­to­ma­ti­ser, on trouve les mises à jour, les requêtes, la sup­pres­sion de données ou l’édition de valeurs sou­hai­tées.

Conseil

Apprenez les bases de SQL : notre in­tro­duc­tion à SQL avec exemples vous assure un aperçu rapide des prin­ci­pales fonctions et règles.

La syntaxe des pro­cé­dures stockées expliquée

La syntaxe in­di­vi­duelle des SQL Stored Pro­ce­dures dépend du bloc de code que vous souhaitez en­re­gis­trer et peut donc être plus ou moins complexe.

Créez une procédure stockée simple :

CREATE PROCEDURE Nom_de_la_procédure (paramètre1 type de données, paramètre2 type de données, ...)
AS
BEGIN
(bloc de code à enregistrer)
END;
sql

Selon le système de gestion de la base de données, la syntaxe peut aussi se présenter comme suit :

CREATE PROCEDURE Nom_de_la_procédure (paramètre1 type de données, paramètre2 type de données, ...)
AS
(bloc de code à enregistrer)
GO;
sql

Les pa­ra­mètres suivants sont utilisés pour créer une procédure stockée en SQL :

  • CREATE PROCEDURE : avec CREATE PROCEDURE, vous dé­fi­nis­sez le bloc de code que vous souhaitez en­re­gis­trer. Vous utilisez le nom de la procédure pour l’exécuter in­di­vi­duel­le­ment ou pour l’insérer dans une autre ins­truc­tion. Les pa­ra­mètres peuvent inclure dif­fé­rentes données né­ces­saires, y compris les types de données des arguments de la procédure.
  • AS : définit le début du bloc de code que vous souhaitez en­re­gis­trer en tant que procédure stockée.
  • BEGIN et END : marquent le début et la fin du bloc de code à en­re­gis­trer. Ces mots-clés sont utilisés pour encadrer le corps de la procédure.
  • GO : utilisé dans certains systèmes de gestion de bases de données, comme SQL Server, pour indiquer la fin d’un lot de commandes. Il ne fait pas partie de la syntaxe de la procédure elle-même mais peut être utilisé pour marquer la fin d’un script dans des outils de gestion de bases de données.

Exécutez la procédure stockée :

EXEC Nom_de_la_procédure;
sql

Avantages et uti­li­sa­tions des pro­cé­dures stockées en SQL

Les SQL Stored Pro­ce­dures per­met­tent de sau­ve­gar­der toutes les ins­truc­tions SQL possibles afin de pouvoir les rappeler ul­té­rieu­re­ment sous forme de pro­cé­dures complètes. Les avantages des pro­cé­dures stockées incluent :

  • Réu­ti­li­sa­tion du code : vous uti­li­se­rez certaines commandes et fonctions SQL à plusieurs reprises dans le cadre de l’uti­li­sa­tion de votre base de données. En en­re­gis­trant des ins­truc­tions simples ou complexes, vous pouvez les réu­ti­li­ser à tout moment sans avoir à ressaisir le code.
  • Sim­pli­fi­ca­tion du travail avec les bases de données : les pro­cé­dures stockées vous per­met­tent de diviser des pro­cé­dures vo­lu­mi­neuses en plusieurs parties, en par­ti­cu­lier pour les tâches complexes. Vous traitez ainsi les blocs de code comme des modules que vous intégrez dans vos ins­truc­tions actuelles.
  • Ef­fi­ca­cité et per­for­mance amé­lio­rées : grâce aux blocs de code en­re­gis­trés, vous sim­pli­fiez la création d’ins­truc­tions SQL, ce qui améliore les per­for­mances dans les bases de données vo­lu­mi­neuses.
  • Sécurité accrue : en at­tri­buant des au­to­ri­sa­tions aux pro­cé­dures stockées, vous ga­ran­tis­sez que les données sensibles et critiques ne peuvent être con­sul­tées ou modifiées qu’avec une au­to­ri­sa­tion d’accès.

Les cas d’ap­pli­ca­tion pratiques dans dif­fé­rents secteurs com­pren­nent, entre autres :

  • L’au­to­ma­ti­sa­tion des processus de commande et la mise à jour des données clients.
  • La sur­veil­lance et la vé­ri­fi­ca­tion de tran­sac­tions fi­nan­cières suspectes ou le calcul des taux d’intérêt des crédits.
  • La création au­to­ma­tique d’offres sur la base des données clients, du com­por­te­ment d’achat, du volume des commandes et de la région.
  • Le calcul des com­mis­sions des employés en fonction de leurs per­for­mances.
  • La création de rapports fi­nan­ciers et l’en­re­gis­tre­ment de tran­sac­tions.
  • Le suivi, la sur­veil­lance et la syn­chro­ni­sa­tion des stocks et des commandes reçues.

Exemples pratiques de SQL Stored Pro­ce­dures

Pour illustrer le fonc­tion­ne­ment des pro­cé­dures stockées, vous trouverez ci-dessous deux exemples pratiques d’uti­li­sa­tion.

Consulter tous les clients

Vous souhaitez récupérer toutes les données des clients dans une table « Clients ». Procédez comme suit :

CREATE PROCEDURE  SelectTousClients
AS
BEGIN
SELECT * FROM Clients
END;
sql

Retrouver toutes les commandes d’une ville

Vous souhaitez récupérer dans une table « Commandes » toutes les commandes d’une ville donnée. Procédez comme suit :

CREATE PROCEDURE  SelectToutesCommandesDeParis
AS
BEGIN
SELECT * FROM Commandes WHERE Ville = 'Paris'
END;
sql

Al­ter­na­tives aux SQL Stored Pro­ce­dures

SQL vous offre dif­fé­rentes al­ter­na­tives avec un fonc­tion­ne­ment similaire à celui des pro­cé­dures stockées. Il s’agit notamment de :

  • UDF (User Defined Function) : une UDF est une fonction définie par l’uti­li­sa­teur. Avec les UDF SQL, vous pouvez créer vos propres fonctions à l’aide du mot-clé CREATE FUNCTION et les en­re­gis­trer sous forme de blocs de code complets. Ainsi, il est possible d’intégrer des requêtes complexes en tant que fonctions pré­dé­fi­nies dans d’autres ins­truc­tions SQL, sans avoir à ressaisir le code complet.
  • VIEWS : les VIEWS per­met­tent de créer des tables vir­tuelles à partir des­quelles vous pouvez analyser des en­re­gis­tre­ments en fonction de pa­ra­mètres pré­dé­fi­nis. Les VIEWS s’insèrent dans les ins­truc­tions SQL de manière similaire aux UDF ou aux pro­cé­dures stockées.
Aller au menu principal