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 :

Composition d'un nom de variable [2008R2]


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Par défaut Composition d'un nom de variable
    Bonjour,

    J'aimerais composer dans ma boucle le nom d'une variable. Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @champ_1_1 VARCHAR(250)
    ,@champ_1_2 VARCHAR(250)
    etc...

    Donc, dans ma boucle, j'aimerais faire appel à mes variables en les composants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    WHILE (@jour < 4)
    BEGIN
    UPDATE table_Y
    SET [composition] = @champ_+'1'+_+'1'
    END
    Quelqu'un aurait une idée?
    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Par défaut
    il faut passer par du sql dynamique. C'est à dire de créer le sql dans une variable varchar puis d'exécuter ce sql exemple MSDN

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Par défaut
    Voici mon résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DECLARE @var VARCHAR(50)
    WHILE (@jour < 4)
    BEGIN
    SET @var = N'SELECT @champ_' + convert(varchar,@jour) + '_' + convert(varchar,1)
    EXEC (@var)
    UPDATE table_Y
    SET [composition] = @var
    END
    Et la réponse est:
    La variable scalaire "@champ_1_1" doit être déclarée.
    Alors qu'elle est bien déclarée comme paramètre de ma procédure stockée..

  4. #4
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Par défaut
    c'est toute le code Tsql qui doit être dynamique, pas seulement la déclaration de la variable.

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Citation Envoyé par lucazzo Voir le message
    Alors qu'elle est bien déclarée comme paramètre de ma procédure stockée..
    oui, mais EXEC exécute dans un nouveau contexte, où votre variable n'existe pas...

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

Discussions similaires

  1. [VB.Net] Créer dynamiquement un nom de variable
    Par chuck_m dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/07/2005, 15h08
  2. Nom de variable dans une autre variable
    Par lsdInside dans le forum Linux
    Réponses: 5
    Dernier message: 04/12/2004, 19h36
  3. [SQL SERVER 2000] Noms de variables dynamiques
    Par cassoulet dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/09/2004, 11h44
  4. Nom de variable
    Par lilia dans le forum Flash
    Réponses: 4
    Dernier message: 07/08/2004, 13h11
  5. Generer des noms de variables avec une boucle
    Par moutanakid dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/07/2004, 17h45

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