IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Syntaxe pour requête SQL avec variables


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut 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 : 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.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Il manque des apostrophes dans votre concaténation, celles autour de @nomcol.

    Dans ce genre de situation, il suffit d'afficher la chaîne construite, vous allez voir ça saute aux yeux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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
     
    SELECT @SQLReq
     
    SELECT col FROM table WHERE col = nomcol
    Avec celle-ci ça va fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET @SQLReq='SELECT col FROM ' + @TABLE + ' WHERE col = ''' + @nomcol + ''''
     
    SELECT @SQLReq
     
    SELECT col FROM table WHERE col = 'nomcol'

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Syntaxe pour requête SQL avec variables
    Merci pour cette réponse rapide et correcte, et pour la petite astuce.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Syntaxe requête SQL avec variables Date
    Par Car0le dans le forum VBA Access
    Réponses: 4
    Dernier message: 24/01/2014, 11h39
  2. Requête SQL avec variable externe
    Par Kesle dans le forum Bases de données
    Réponses: 15
    Dernier message: 15/05/2009, 18h14
  3. [MySQL] Requête SQL avec variable
    Par kate59 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/04/2008, 14h12
  4. Requête SQL avec variables
    Par BMT_Benoît dans le forum Windows Forms
    Réponses: 36
    Dernier message: 12/07/2007, 12h35
  5. Problème avec requête SQL avec variables
    Par harry25 dans le forum ASP
    Réponses: 1
    Dernier message: 03/01/2007, 03h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo