Optimiser procédure stockée
Bonjour,
J'ai une procédure stockée qui prend 3 varchar comme parametres, mais ils peuvent être égaux à "" donc je fais ma clause where en fonction de mes varchar. Si le varchar est vide je ne fais pas de like.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
ALTER PROCEDURE [dbo].[Consult_SearchAvecCodeCltDescSGR] (@CodeCltContient varchar(50),@DescContient varchar(50),@SGRMagContient varchar(50),@Env varchar(50))
AS
IF ( @CodeCltContient != '' AND @DescContient = '' AND @SGRMagContient = '')
SELECT DISTINCT KNKNDK,KNKNMN,LAPRTN,LALADI
FROM KNDF
INNER JOIN KLAF ON KLAF.LAKNDI = KNDF.KNKNDI
WHERE KNKNDK LIKE '%' + @CodeCltContient + '%' AND KNDF.ENV_CD = @Env ORDER BY KNKNDK
ELSE IF ( @CodeCltContient != '' AND @DescContient != '' AND @SGRMagContient = '')
SELECT DISTINCT KNKNDK,KNKNMN,LAPRTN,LALADI
FROM KNDF
INNER JOIN KLAF ON KLAF.LAKNDI = KNDF.KNKNDI
WHERE KNKNDK LIKE '%' + @CodeCltContient + '%' AND KNKNMN LIKE '%' + @DescContient + '%' AND KNDF.ENV_CD = @Env ORDER BY KNKNDK |
Et cela pour tous les autres cas.
Y a t-il un façon plus optimisée d'écrire cette procédure?
Merci d'avance