Bonjour,

Je suis en train de travailler sur un site d'offres d'emploi, j'ai quelques questions au sujet des procédures stockées.
J'ai plusieurs paramètres qui peuvent ne pas être renseignés et j'aimerais savoir comment faire ma requète (voici la procédure)

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
ALTER PROCEDURE [dbo].[GetOffres]
(
@RecruteurID int = null, 
@MetierID int = null,
@SecteurID int = null,
@NiveauID int = null,
@Reference nvarchar = null,
@Keyword nvarchar = null
)
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM Offres
WHERE
RecruteurID = @RecruteurID
AND
MetierID IN (@MetierID)
AND
SecteurID IN (@SecteurID)
AND
NiveauID = @NiveauID
AND
Reference = @Reference
AND
Titre LIKE @Keyword
END
Si je ne renseigne pas certain paramètres, ma requête ne me retournera aucun enregistrement
Serait-ce une bonne idée de faire ceci par exemple :
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
ALTER PROCEDURE [dbo].[GetOffres]
(
@RecruteurID int = null, 
@MetierID int = null,
@SecteurID int = null,
@NiveauID int = null,
@Reference nvarchar = null,
@Keyword nvarchar = null
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQL = 'SELECT ...'
IF @RecruteurID IS NOT NULL
@SQL = @SQL + 'RecruteurID = ' + @RecrteurID
END IF
...
EXEC(@SQL)
END
De plus j'aimerais savoir comment faire pour passer des paramètres tels que @MetierID afin que ma requête s'effectue de cette sorte MetierID IN (@MetierID)

Merci d'avance de votre aide