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.
Table of Contents
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.
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.
Soyez le premier à commenter