Exécuter une Procédure Stockée SQL Server avec des Paramètres

Tutoriel avec exemples de requêtes T-SQL pour exécuter une procédure stockée SQL Server avec un ou plusieurs paramètres d’entrée.

En fonction du code T-SQL, exécuter une procédure stockée SQL Server avec des paramètres en fournissant des valeurs obligatoires ou alors les valeurs par défaut seront utilisées. D’abord, vous devez définir la valeur NULL dans le code de la procédure. Ceci est dû au fait que nous créons les paramètres de manière obligatoire ou facultative.

Pour les paramètres optionnels, nous pouvons attribuer une valeur par défaut dans l’instruction de création de la procédure SQL. Ainsi, les paramètres optionnels n’empêchent pas l’exécution de la procédure et l’obtention d’un retour potentiel dans SSMS.

1. Exécuter une procédure stockée SQL Server avec un paramètre

Tout d’abord, créez la procédure à appeler, ou assurez-vous qu’elle est déjà dans la base de données. Sinon, exécutez le code ci-dessous, similaire à celui utilisé pour créer la procédure stockée uspGetCustomer de ce tutoriel. Dans cette procédure stockée, le paramètre d’entrée unique est l’ID client, et il est obligatoire. L’objectif de la procédure est d’afficher toutes les informations, c’est-à-dire toutes les colonnes de la table Clients pour le numéro de client donné en paramètre. La procédure stockée d’exemple avec ce script :

CREATE PROCEDURE uspGetCustomer
   @NoClient INT
AS
   SELECT  *
   FROM    [dbo].[CLIENTS]
   WHERE   [NOCLIENT] = @NoClient
GO

Voici un exemple simple de requête pour exécuter une procédure stockée MS SQL avec un ou plusieurs paramètres en entrée. En effet, pour passer les informations d’entrée à la procédure T-SQL, exécuter ce code et adapter cette syntaxe au cas plus spécifique.

EXEC dbo.uspGetCustomer
   @NoClient = 1;

2. Exécuter une procédure stockée avec plusieurs paramètres en T-SQL

Dans ce deuxième cas, l’ID client et la Ville sont utilisés comme paramètres. Dans ces exemples plus pratiques, il est bien sûr possible d’utiliser seulement des noms et des valeurs explicites au lieu d’IDs techniques.

-- Créer la même procédure avec deux paramètres et aussi des valeurs NULL par défaut
CREATE PROCEDURE uspGetCustomer
  @ClientNumber  int          = NULL, 
  @City          nvarchar(20) = NULL
AS
  SELECT *
  FROM   [dbo].[CLIENTS]
  WHERE  [ClientNumber] = @ClientNumber
    OR   [City]         = @City
GO

Pour exécuter une procédure stockée codée dans SQL Server, appelez simplement la procédure, avec les paramètres obligatoires séparés par des valeurs, et dans le bon ordre, ou nommés explicitement, ce qui est la manière recommandée.

EXEC dbo.uspGetCustomer
   @ClientNumber = 2,
   @City         = 'Casablanca';
 

En effet, dans le paragraphe précédent, je mentionne le fait que vous n’avez pas besoin de nommer explicitement les variables, vous pouvez les appeler de cette manière :

EXEC dbo.uspGetCustomer
   2,
   'Casablanca';
 

3. L’ordre compte lors de l’exécution de procédures stockées en T-SQL

Mais dans ce cas, l’ordre doit être respecté. Par exemple, essayez d’exécuter le code ci-dessous, c’est-à-dire sans respecter l’ordre.

EXEC dbo.uspGetCustomer
   'Casablanca', 
   2;

Vous pourriez rencontrer une erreur SQL Server comme celle-ci, car le type des paramètres n’est pas le même. Et si tous les deux étaient des entiers, cela pourrait être pire, car alors le résultat serait faux.

Pour exécuter une procédure stockée SQL Server  avec des paramètres sans erreur : respecter l'ordre
Pour exécuter une procédure stockée SQL Server avec des paramètres sans erreur : respecter l’ordre

Msg 8114, Level 16, State 1, Procedure dbo.uspGetCustomer, Line 0 [Batch Start Line 0]
Erreur de conversion du type de données varchar en int.

Une syntaxe simple avec paramètres et valeurs par défaut

Pour aller plus loin dans l’apprentissage de SQL Server et du langage de programmation T-SQL, voici un court tutoriel sur comment retourner des valeurs avec une procédure stockée en utilisant l’option OUTPUT. En effet, contrairement aux fonctions SQL, les procédures stockées ne retournent pas toujours une valeur. Pour retourner une valeur avec une procédure MS SQL, utilisez l’option OUTPUT.

Plus de contenu sur les Procédures SQL
Return values with SQL Server stored procedure

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *