SQL dynamique : pb de syntaxe
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:
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... :?