Partager via


Présentation des procédures stockées

Les procédures stockées de MicrosoftSQL Server ressemblent aux procédures d'autres langages de programmation, car elles peuvent :

  • accepter des paramètres d'entrée et retourner plusieurs valeurs sous la forme de paramètres de sortie à la procédure ou au traitement appelant ;

  • contenir des instructions de programmation qui exécutent des opérations dans la base de données, y compris l'appel d'autres procédures ;

  • retourner une valeur d'état à une procédure ou à un traitement appelant pour indiquer une réussite ou un échec (et la raison de l'échec).

Vous pouvez utiliser l'instruction Transact-SQL EXECUTE pour lancer une procédure stockée. Les procédures stockées diffèrent des fonctions en ce sens qu'elles ne retournent pas de valeurs à la place de leurs noms et qu'elles ne peuvent pas être employées directement dans une expression.

Les avantages d'utiliser des procédures stockées dans SQL Server au lieu de programmes Transact-SQL enregistrés localement sur des ordinateurs clients sont les suivants :

  • Elles sont enregistrées au niveau du serveur.

  • Elles peuvent posséder des attributs de sécurité (tels que des autorisations) ainsi qu'un chaînage des propriétés, et des certificats peuvent y être joints.

    Les utilisateurs peuvent être autorisés à exécuter une procédure stockée sans disposer d'autorisations directes sur les objets référencés dans la procédure.

  • Elles peuvent améliorer la sécurité de votre application.

    Les procédures stockées paramétrées peuvent vous aider à protéger votre application contre les attaques d'injection SQL. Pour plus d'informations, consultez SQL Injection.

  • Elles permettent d'utiliser la programmation modulaire.

    Vous pouvez créer la procédure une fois et l'appeler autant de fois que vous le souhaitez dans votre programme. Cela peut améliorer la gestion de votre application et permet aux applications d'accéder à la base de données de manière uniforme.

  • Elles constituent du code nommé pour la liaison différée.

    Cela fournit un niveau d'indirection pour une évolution aisée du code.

  • Elles peuvent réduire le trafic du réseau.

    Une opération qui demande des centaines de lignes de code Transact-SQL peut être exécutée au moyen d'une simple instruction qui exécute le code dans une procédure au lieu de faire circuler toutes ces lignes sur le réseau.