Procédure stockée SQL Server qui retourne des valeurs avec OUTPUT





02-14-2013, 04:17 PM
Message : #1

Edit_128x128 Procédure stockée SQL Server qui retourne des valeurs avec OUTPUT


Comment écrire une procédure stockée SQL Server qui retourne des valeurs ? Dans ce tutoriel, nous allons voir ensemble comment écrire une procédure stockée SQL Server simple en T-SQL qui retourne des valeurs.

La mise en place des paramètres de sortie d'une procédure stockée est similaire à celle des paramètres d'entrée, la seule différence est qu'il faut utiliser la clause OUTPUT après le nom du paramètre pour spécifier qu'il doit retourner une valeur. La clause de sortie peut être spécifié en utilisant soit le mot-clé "OUTPUT" ou tout simplement "OUT".

Code d’exemple pour la création de la table CLIENTS.

-- Si la table CLIENTS existe déjà, alors on la supprime
IF exists( SELECT 1 FROM sys.objects WHERE object_id = object_id(N'[dbo].[CLIENTS]') AND type in (N'U') )
BEGIN
DROP TABLE [dbo].[CLIENTS]
END
GO

-- Création de la table CLIENTS avec la colonne NOM déclarée comme UNIQUE
-- Le mot clef UNIQUE définit la colonne avec une valeur unique
-- Une insertion de deux clients avec le même nom est donc impossible
CREATE TABLE [dbo].[CLIENTS] (
[NOM] nvarchar(20) UNIQUE,
[VILLE] nvarchar(20)
)
GO

-- Insertion des données pour notre exemple
INSERT INTO dbo.CLIENTS ( NOM, VILLE ) VALUES ( N'MAMMADOU', 'Lyon')
INSERT INTO dbo.CLIENTS ( NOM, VILLE ) VALUES ( N'SERGEI', 'Lyon')
INSERT INTO dbo.CLIENTS ( NOM, VILLE ) VALUES ( N'CHRISTOPHE', 'Paris')

Exemple de procédure stockée SQL Server retournant des valeurs avec OUTPUT



Cet exemple de prodécure retourne le nom de la ville d'un client.

-- 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

Exécution de la procédure stockée en 3 étapes:
  • Déclarer une variable du même type que le retour OUTPUT et la colonne Ville, soit nvarchar(20) pour notre exemple.
  • Exécuter la procédure avec la commande EXEC.
  • Sélectionner la variable @VilleClient qui contient le résultat de la procédure stockée.

DECLARE @VilleClient nvarchar(20)

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

SELECT @VilleClient

Procédure Stockée SQL Server avec OUTPUT


Pièce(s) jointe(s) Miniature(s)
   
Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse


Articles ou discussions similaires
Script de création de la table CLIENTS avec SQL Server
Pivoter des lignes en colonnes avec la requête PIVOT sous SQL Server
Comment créer une procédure stockée simple sous SQL Server