Exécuter une procédure SQL Server avec des paramètres

Comment exécuter une procédure stockée SQL Server avec des paramètres? En fonction de la configuration du code SQL Server utilisé, il faut l’exécuter avec tous les paramètres ou alors uniquement un seul. Dans certains cas, assigner au préalable la valeur NULL dans le code de la procédure.

En effet, les paramètres sont créés de manière obligatoire ou non. Pour les paramètres facultatifs, une valeur par défaut est assignée par le code SQL. De cette manière, même un appel sans paramètres ne retourne pas de code d’erreur à l’exécution depuis SSMS.

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

Tout d’abord, exécuter le code de cette procédure stockée créée depuis cet article. Le but est de créer la procédure pour l’appeler. Voici le code pour créer la procédure:

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

Voici un exemple simple pour exécuter une procédure SQL , avec un ou plusieurs paramètres en entrée. En effet, pour passer les informations en entrée au code SQL, il est recommandé d’utiliser des variables intermédiaires pour une bonne lisibilité du code.

Exécuter ce code et adapter cette syntaxe aux besoins du projet.

EXEC uspGetClient 
  @NoClient = 1;

Exécuter une procédure SQL Server avec un plusieurs paramètres

Dans ce deuxième cas, l’identifiant du client et la ville sont utilisés comme paramètres. Dans cet exemple plus pratique, il est bien sûr possible d’utiliser uniquement des noms et des valeurs explicites au lieu des identifiants techniques.

-- Create the same procedure with two parameters and also default NULL values
CREATE PROCEDURE uspGetCustomer
  @ClientNumber  int          = NULL, 
  @City          nvarchar(20) = NULL
AS
  SELECT *
  FROM   [dbo].[CLIENTS]
  WHERE  [ClientNumber] = @ClientNumber
    OR   [City]         = @City
GO

Ainsi, pour exécuter une procédure stockée codée avec SQL Server, il suffit d’appeler la procédure, avec les paramètres obligatoires séparés par des valeurs et dans l’ordre approprié, ou de la nommer explicitement, ce qui est la méthode recommandée.

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

En effet, dans le paragraphe précédent, je mentionne le fait qu’il n’est pas nécessaire d’appeler explicitement les noms des variables, vous pouvez le faire de cette manière :

EXEC dbo.uspGetCustomer
   2,
   'Casablanca';

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 pouvez rencontrer une erreur SQL Server comme celle-ci, parce que le type des paramètres n’est pas le même. Et s’il s’agit de deux entiers, la situation peut être pire, car le résultat sera alors faux.

Exécuter une procédure stockée avec des paramètres dans le mauvais ordre génère une erreur SQL Server
Exécuter une procédure stockée avec des paramètres dans le mauvais ordre génère une erreur SQL Server

Une syntaxe simple si les paramètres sont bien utilisés

Voici un autre tutoriel SQL Server, toujours en Français avec un exemple de code T-SQL pour modifier une procédure stockée dans une base de données MS SQL.

Modifier une procédure stockée SQL Server

Laisser un commentaire

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