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

Développement SQL Server Discussion :

Problème d'exécution sur paramètre nom de table


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Points : 80
    Points
    80
    Par défaut Problème d'exécution sur paramètre nom de table
    bonjour voici le sql que j'aimerai genéraliser pour pouvoir faire une boucle sur toutes mes tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update imp_campagne
       set nb_cli =(select count(Freg) from IMP_181042_Fib)
         where campagne like 'IMP_181042_Fib';
    voici le code qui me pose probleme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @NOMTABLE varchar(20),@SQL varchar(300)
    SET @NOMTABLE='IMP_181042_Fib'
     
    set @SQL='update imp_campagne
       set nb_cli =(select count(Freg) from ' + @NOMTABLE + ')
         where campagne like ' + @NOMTABLE + ''
    print @SQL
    EXEC @SQL
    voici le resultat

    update imp_campagne
    set nb_cli =(select count(Freg) from IMP_181042_Fib)
    where campagne like IMP_181042_Fib
    Msg*2812, Niveau*16, État*62, Ligne*8
    Procédure stockée*'update imp_campagne
    set nb_cli =(select count(Freg) from IMP_181042_Fib)
    where campagne like IMP_181042_Fib' introuvable.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Avec les doubles quotes dans les quotes, plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set @SQL='update imp_campagne
       set nb_cli =(select count(Freg) from ' + @NOMTABLE + '
         where campagne like ''' + @NOMTABLE + ''' )'
    Et puis, la parenthèse...
    Bref, faites au moins la correction de syntaxe avant de poster...
    Par contre, un like sans wildcard, c'est en fait une égalité !

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Points : 80
    Points
    80
    Par défaut merci
    ta proposition m'a bien aidé
    mais la parenthese était bien placée car mon where se refere bien a imp_campagne
    voici mon code qui maintenant fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set @SQL='update imp_campagne
       set nb_cli =(select count(Freg) from ' + @NOMTABLE + ')
         where campagne = ''' + @NOMTABLE1 + ''''
    pourquoi doit on doubler les cotes?

  4. #4
    Invité
    Invité(e)
    Par défaut
    désolé pour la parenthèse, j'avais pas percuté comme il faut.
    En gros, pour le quote doublé, c'est parce qu'il n'est pas interprété comme un début ou fin de chaîne de caractères alors que le simple oui.
    Il y a sûrement une explication mieux faite que ça mais en gros, c'est le principe.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/09/2016, 14h59
  2. Problème d'exécution sur un OnMouseWheel
    Par Omeggg dans le forum Composants VCL
    Réponses: 7
    Dernier message: 15/04/2006, 18h24
  3. [DOM] Problème d'accent sur les noms de fichier avec mon parseur
    Par ujoodha dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 06/04/2006, 21h55
  4. Réponses: 2
    Dernier message: 04/10/2005, 15h13

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