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 :

Problème pour exécuter une chaîne de caractères


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Problème pour exécuter une chaîne de caractères
    Bonjour,

    J'essaie d'exécuter une chaîne de caractère (je vais chercher des noms de colonnes avec des curseurs que je met en variables ...etc , je vous passe les détails) et au final, j'en arrive à exécuter ceci en abrégeant considérablement et en enlevant les variables qui fonctionne correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    declare @exercice varchar(30)
    Set @exercice = 'Exercice 2004-2005'
     
    Exec ('Update ZZZCHEV_TB_MENSUEL Set 
    	Exce_Prec = ( Select CHM_QTEMONTURE 
    			from ZZZCHEV_CHIFFRE_MENSUEL 
    			Where CHM_MAGASIN = 004 and CHM_ANNEE = 2005 and CHM_MOIS = 2) 
    	where Exercice = ' + @Exercice + ' and Magasin = 004 and Colonne = 1')
    et le résultat me donne cette erreur :

    Serveur*: Msg 170, Niveau 15, État 1, Ligne 5
    Ligne 5 : syntaxe incorrecte vers '2004'.

    En fait, il faudrait que j'arrive à mettre des côtes dans la chaîne de caractère mais je ne sais pas comment faire.

    Le plus étonnant c'est que quand je met la valeur 'Exercice' dans la variable @exercice comme ceci, ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    declare @exercice varchar(30)
    Set @exercice = 'Exercice'
     
    Exec ('Update ZZZCHEV_TB_MENSUEL Set 
    	Exce_Prec = ( Select CHM_QTEMONTURE 
    			from ZZZCHEV_CHIFFRE_MENSUEL 
    			Where CHM_MAGASIN = 004 and CHM_ANNEE = 2005 and CHM_MOIS = 2) 
    	where Exercice = ' + @Exercice + ' and Magasin = 004 and Colonne = 1')
    mais quand je met la valeur Exercice20042005 dans la variable @Exercice comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    declare @exercice varchar(14)
    Set @exercice = 'Exercice20042005'
     
    Exec ('Update ZZZCHEV_TB_MENSUEL Set 
    	Exce_Prec = ( Select CHM_QTEMONTURE 
    			from ZZZCHEV_CHIFFRE_MENSUEL 
    			Where CHM_MAGASIN = 004 and CHM_ANNEE = 2005 and CHM_MOIS = 2) 
    	where Exercice = ' + @Exercice + ' and Magasin = 004 and Colonne = 1')
    j'ai alors le message d'erreur suivant (qui n'est pas le même qu'auparavant) :

    Serveur*: Msg 207, Niveau 16, État 3, Ligne 1
    'Exercice20042005' : nom de colonne incorrect.

    ça fait des heures que je cherche, je coule là ...

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Vous devez doubler les quôtes (')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    + '''' + @Exercice + '''' + ...

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ben écoutez ça marche ...
    J'y avais pensé mais sans les mettres seules entre les + ...

    J'attendais pas une réponse aussi rapide !!!!

    Merci

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Desormais, pense au tag résolu

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/04/2014, 23h00
  2. Réponses: 3
    Dernier message: 22/09/2012, 13h38
  3. Réponses: 3
    Dernier message: 17/08/2011, 14h40
  4. Réponses: 26
    Dernier message: 29/05/2008, 15h13
  5. Réponses: 4
    Dernier message: 28/05/2008, 18h43

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