Procédure stockée SQL Server avec variables et OUTPUT

Comment créer une procédure stockée SQL Server qui renvoie des variables avec OUTPUT ? Cet exemple simple en T-SQL retourne des valeurs à travers les paramètres de sortie. La mise en place, l’instanciation et l’utilisation des paramètres de sortie d’une procédure stockée est similaire à celle des paramètres d’entrée.

Par ailleurs, la clause OUTPUT après le nom du paramètre constitue la différence majeure. Le mot clef OUTPUT spécifie que la procédure stockée doit retourner une valeur. D’autre part, la clause de sortie peut être spécifié en utilisant soit le mot-clé “OUTPUT” ou tout simplement “OUT”.

Procédure stockée SQL Server qui retourne la valeur dans des variables de sortie

Comment récupérer et stocker le résultat d’une procédure stockée après une commande execute dans une variable SQL Server ? En effet pendant l’appel des commandes execute SQL ou encore EXEC, il est facile d’afficher le résultat avec la fonction PRINT.

Il est aussi possible et utile de le récupérer dans une variable pour l’utiliser dans la suite du code T-SQL. 

Tout d’abord, créer la table des clients, le code d’exemple pour la création de la table est disponible ici :

Script de création de la table Clients sous SQL Server

Exemple de procédure T-SQL pour renvoyer des données avec l’option OUTPUT

En effet, cet exemple de procédure retourne en sortie le nom de la ville d’un client dont le nom est passé en paramètre d’entrée.

-- Création de la procédure stockée avec la variable @VilleClient en OUTPUT
CREATE PROCEDURE dbo.uspVilleClient
  @NomClient		nvarchar(20),
  @VilleClient	nvarchar(20) OUTPUT
AS
SELECT 	@VilleClient= VILLE
FROM 	dbo.CLIENTS
WHERE 	NOM = @NomClient
GO

Voici un exemple de script pour créer une procédure stockée SQL Server avec OUTPUT pour récupérer et réutiliser le résultat dans une ou plusieurs variables après l’exécution d’une commande de type Exec. 

En effet, en T-SQL avec la commande EXEC, suivie du nom de la procédure, utiliser le mot clef “OUTPUT”. Cela permet de stocker le résultat depuis la procédure appelée et de l’envoyer vers l’appelante.

Exécution de la procédure stockée SQL Server avec OUTPUT en 3 étapes

  1. Premièrement, déclarer une variable du même type que le retour OUTPUT et la colonne Ville, soit nvarchar(20) pour notre exemple.
  2. Deuxièmement, exécuter la procédure avec la commande EXEC.
  3. Sélectionner la variable @VilleClient qui contient le résultat de la procédure stockée.
-- Exécution de la procédure stockée
DECLARE @VilleClient nvarchar(20)

EXEC	dbo.uspVilleClient
  @NomClient		= 'SERGEI',
  @VilleClient 	= @VilleClient OUTPUT

SELECT 	@VilleClient as [Ville]
Résultat de l'exécution de la procédure stockée SQL Server qui retourne des valeurs
Résultat de l’exécution procédure stockée SQL Server avec retour de la valeur

OUTPUT permet de stocker le résultat d’une commande T-SQL dans une variable

Pour conclure, le résultat de la procédure stockée est la valeur de la ville pour le client sélectionné.

Pour aller plus loin sur les procédures stockées, voici comment insérer des lignes dans une procédure stockée. Cet exemple passe les valeurs en paramètres dans des variables.

Pour découvrir d’autres exemples de scripts, voici comment modifier une procédure stockée SQL Server.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*