Bonjour,

voici un petit problème syntaxique dans l'écriture d'une procédure stockée en SQL Server 2005.

Je souhaite exécuter un select contenant des variables.

Le select suivant fonctionne en mode SQL Query:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT col FROM table WHERE col='nomcol'
Par contre dans ma procédure je passe mon nom de table et de colonne en paramètre. Pour comprendre la syntaxe ici je les déclare dans la procédure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
DECLARE @nomcol varchar(50)
DECLARE @table varchar(50)
DECLARE @SQLReq varchar(100)
SET @nomcol='nomcol'
SET @table='table'
SET @SQLReq='SELECT col FROM ' + @table + ' WHERE col=' + @nomcol
EXEC (@SQLReq)
=> erreur à l'exécution

Si je mets:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
SET @SQLReq='SELECT col FROM ' + @table + ' WHERE col=''nomcol'''
EXEC (@SQLReq)
Cela fonctionne !

Où est l'erreur ? Connaissez vous des documents qui expliqueraient tous ces problèmes de syntaxe ? Merci.