Procédure stockée SQL Server avec paramètres optionnels
par
, 06/12/2022 à 20h14 (1878 Affichages)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pour qu'un paramètre déclaré dans une procédure stockée soit optionnelle il faut la déclarer comme ci-dessous
Et pour que le paramètre ne soit pas pris en compte quand il n'est pas passé en paramètre via EXEC, la syntaxe est la suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part @parmaName Type= NULL
C'était la partie théorique maintenant rien de mieux qu'un exemple pour illustration
Code : Sélectionner tout - Visualiser dans une fenêtre à part Predicat ( @parmaName is null or FieldName = @parmaName );
Le résultat des 2 requêtes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 USE [AdventureWorksLT2019] GO /****** Object: StoredProcedure [SalesLT].[spOrder] Script Date: 06/12/2022 18:17:15 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= CREATE /ALTER PROCEDURE [SalesLT].[spOrder] -- Add the parameters for the stored procedure here @pFirstName NVARCHAR(MAX) = NULL AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here --SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2> SELECT DISTINCT SalesLT.Customer.FirstName , SalesLT.Customer.MiddleName , SalesLT.Customer.LastName FROM SalesLT.Customer WHERE ( @pFirstName is null or FirstName = @pFirstName); END
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 USE [AdventureWorksLT2019] GO EXEC SalesLT.spOrder; EXEC SalesLT.spOrder "Catherine";![]()