Bonjour,

Dans une procédure stockée, je reçois une variable varchar qui contient une suite d’ID sous cette forme 3,4,5,6

Je voudrais trouver toutes les enregistrements avec ces ID.

J’ai fait comme ça : (il y a pas une méthode plus correcte ?)

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
ALTER PROCEDURE [dbo].[GestionRetourMaterielEtat]
	-- Add the parameters for the stored procedure here
	@PIDDossierTab varchar(300)
 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    -- Insert statements for procedure here
    DECLARE @sql AS VARCHAR(255)
 
    SET @sql = 'SELECT  
    Saturna.dbo.dossier.NumDossier
    FROM Saturna.dbo.dossier 
    LEFT JOIN Saturna.dbo.Client_Dossier ON Saturna.dbo.Client_Dossier.IDdossier  = Saturna.dbo.dossier.IDdossier 
    LEFT JOIN Saturna.dbo.Adresse_Dossier ON Saturna.dbo.Adresse_Dossier.IDdossier = Saturna.dbo.dossier.IDdossier 
    WHERE Saturna.dbo.dossier.IDdossier IN (' + @PIDDossierTab + ')'
 
	EXECUTE (@sql);
Quand j’exécute, j’obtiens une erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Msg 4145, Level 15, State 1, Line 5
An expression of non-boolean type specified in a context where a condition is expected, near 'Adres'.
 
(1 row(s) affected)
Je me suis basé sur ce post pour le requête : http://forums.whirlpool.net.au/archive/928435



Maintenant, si je retire un des deux LEFT JOIN, j’obtiens bien mes résultats.
Une idée ?

D’avance, merci.