Bonjour !

J'essaie d utiliser une procedure stockee avec du SQL dynamique, et j ai le droit à tout plein de messages d'erreur... malgré mes nombreuses tentatives... Peut ete que c'est flagrant, et que quelque chose va vous sauter aux yeux... Mais moi je sèche là...

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
CREATE PROCEDURE SearchDocs
(
    @ModuleID       int,
    @Req               nvarchar(300)
)
as 
BEGIN 
   DECLARE @SQL varchar(8000) 
   SELECT @SQL= 'SELECT  DISTINCT
    Docs.FileName,
    Docs.FilePath,
    Docs.Category,
FROM Docs
WHERE Docs.ModuleID ='
SELECT @SQL  = @SQL+ 'convert(int,' + " '@ModuleID' " +')  ' 
SELECT @SQL= @SQL +  @Req
 
 EXEC (@SQL) 
END
GO
Et lorsque j utilise, j ai le + souvent ce message d'erreur là (avec ou sans la fonction convert... ):
Erreur de syntaxe lors de la conversion de la valeur varchar '@ModuleID' vers une colonne de type de données int.

Lorsque j enlève la série de ' ' et de " " (les espaces ne sont pas dans la procédure initiale, c est rajouté ici pour la lisibilité) autour de la variable @ModuleID, j'obtiens une erreur comme quoi @SQL est incorrect...
Je suppose que je n utilise pas la bonne syntaxe... Je cherche, mais j avoue qu une piste me ferait gagner un peu de temps...