Syntaxe pour requête SQL avec variables
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:
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:
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:
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.
Syntaxe pour requête SQL avec variables
Merci pour cette réponse rapide et correcte, et pour la petite astuce.
:ccool: