Chaque procédure stockée aboutit à une sortie : valeur de renvoi, message d'erreur système, ou autre. La plupart des procédures effectuent aussi des opérations sur la base de données qui produisent d'autres genres de sorties. Principaux exemples : des procédures INSERT qui ajoutent des enregistrements de tables et des
Etape 1 : Définir les sorties attendues
procédures SELECT
qui génèrent des jeux de résultats.
Les procédures stockées peuvent
aussi engendrer des messages d’erreur
ou des codes d’état personnalisés,
renvoyer des valeurs, imprimer des
instructions, ou produire des paramètres.
La procédure de consultation,
usp_lookupPrice, que montre le listing
2, peut produire toutes ces différentes
sorties. La procédure recherche un
produit, définit un paramètre de sortie
égal au prix unitaire du produit puis
renvoie un code d’état de 0, indiquant
la bonne exécution.
Commençons par définir les résultats
en examinant le paramètre de sortie
@product_price. Le premier résultat
attendu est le renvoi du prix du
produit au programme appelant. Pour
mieux voir ce qui se passe dans ce scénario
de test, utilisons le code du listing
3 destiné à peupler la table
Products. On utilisera ensuite le code
du listing 4 pour exécuter la procédure
usp_lookupPrice.
Selon le product_id utilisé pour
tester usp_lookupPrice, le résultat attendu
pour @product_price sera
$19.95, $29.95, $39.95, $11.00, ou
NULL. Mais que se passe-t-il si l’on sélectionne
un product_id invalide ? Le
résultat dépendra de la valeur de test
ou autre caractère clavier fourni à
usp_lookupPrice. Par exemple, en entrant
un entier invalide, 11 par
exemple, comme product_id, on évoquera
une valeur de renvoi NULL. L’entrée d’un caractère alphabétique
tel que a ou f génèrera un message
d’erreur Server : Msg 8114 : Error
converting data type nvarchar to int. Et
la non-saisie d’un product_id ou d’un
caractère spécial tel que & causera un
message d’erreur Server : Msg 170 :
Incorrect syntax near ‘,’. Par conséquent,
selon les valeurs de test pour
product_id, on peut s’attendre à ce
que l’exécution de usp_lookupPrice
résulte en un product_price valide
(quand product_id est 1, 2, 3 ou 4), un
product_price nul ou un message TSQL
signalant une erreur de conversion,
une erreur de syntaxe, ou autre
erreur système.
Voyons maintenant les instructions
de renvoi dans usp_lookupPrice. On
peut utiliser une instruction de renvoi
pour passer le contrôle de traitement
des erreurs à un programme appelant
ou à une procédure en attribuant des
codes d’état entiers personnalisés à
différentes conditions d’erreur. On
peut programmer le processus appelant
pour qu’il traite le code résultant
d’une rencontre avec l’un de ces codes
d’état, à votre gré, y compris en l’ignorant.
Le résultat attendu d’une instruction
de renvoi est 0 – le code d’état par
défaut pour une procédure qui s’exécute
bien. Outre 0, une instruction de renvoi peut renvoyer les codes d’état
réservés Microsoft de -1 à -99, ainsi que
tout autre code personnalisé de notre
choix. Usp_lookupPrice contient deux
codes d’état personnalisés, 10 et 11,
donc les valeurs de renvoi attendues
sont
ne se produit
trouvé
un code d’état réservé
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Et si les clients n’avaient plus le choix ?
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Activer la mise en veille prolongée dans Windows 10
- Afficher les icônes cachées dans la barre de notification
Les plus consultés sur iTPro.fr
- CRM et souveraineté : le choix technologique est devenu un choix politique
- France : la maturité data devient le moteur du retour sur investissement de l’IA
- Cloud et IA : une maturité en retard face à l’explosion des usages
- On ne peut pas gouverner ce qu’on ne peut pas voir : pourquoi la visibilité doit-elle passer avant la gouvernance en matière de sécurité des identités ?
Articles les + lus
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
À la une de la chaîne Tech
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
