[SQL Server] Limiter le nombre de valeurs passées dans une paramètre SSRS
-- =============================================
-- Author : Zouhaier KHARROUBI
-- Create date : 01/02/2017
-- Description : Limiter le nombre de valeurs passées dans une paramètre SSRS
-- Dans notre cas d'exemple le nombre de valeurs passées dans une paramètre SSRS a été limité à 10 valeurs
-- =============================================
DECLARE @Indice INT
,@Position INT
,@Parametres VARCHAR(MAX)
,@Nbre_Parametres INT
,@Nbre_Parametres_Autorise INT
,@Position_Precedente INT
SELECT @Indice = 1
,@Position = 1
,@Nbre_Parametres = 0
,@Nbre_Parametres_Autorise = 10
-- Afin d'eviter les lenteurs le système ne traitera que les 10 premiers articles selectionnés
WHILE @Indice <= @Nbre_Parametres_Autorise
BEGIN
SELECT @Position = CHARINDEX(',',@Parametres,@Position + 1)
IF @Position = 0
BEGIN
SELECT @Indice = @Nbre_Parametres_Autorise
END
ELSE
BEGIN
SELECT @Nbre_Parametres = @Nbre_Parametres + 1
SELECT @Position_Precedente = @Position
END
SELECT @Indice = @Indice + 1
END
IF @Nbre_Parametres < @Nbre_Parametres_Autorise
BEGIN
SELECT @Position_Precedente = LEN(@Parametres) + 1
END
SELECT @Parametres = SUBSTRING(@Parametres,0,@Position_Precedente)