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 :

utilisation de COLUMN_NAME


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 112
    Points : 94
    Points
    94
    Par défaut utilisation de COLUMN_NAME
    Bonjour,

    j'aimerai mettre a jour les champs d'une table qui contien une 100n de colonnes. j'ai donc utilisé une idée trouvée dans la FAQ celle de parcourir les noms de colonne d'une table avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT   COLUMN_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME= 'maTable'
    donc le but est de parcourir matable, et de mettre a jour les champs des colonnes avec une boucle. voici le code TSQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    DECLARE @colonne varchar(5)
     
    DECLARE lineCursor CURSOR local FOR 
    	SELECT   COLUMN_NAME
    	FROM INFORMATION_SCHEMA.COLUMNS
    	WHERE TABLE_NAME= 'punktrettung' 
     
    OPEN linecursor 
     
    FETCH next FROM linecursor INTO @colonne
     
    WHILE @@fetch_status = 0 
    BEGIN
    	select @colonne from punktrettung 
    	FETCH next FROM linecursor INTO @colonne
     
    END 
    CLOSE linecursor
    Vous verrez qu'au debut je ne fait qu'un SELECT pour voir si je parcour bien la table en question et tout les champs de colonnes pour etre sur que la mis a jour va marcher apres. mais ca me donne un resultat bizar

    ce code me retourne le resultat suivant:
    colonne1
    colonne1
    colonne1
    colonne1
    colonne1
    colonne1
    colonne1

    colonne2
    colonne2
    colonne2
    colonne2
    colonne2
    colonne2
    colonne2

    colonne3
    colonne3
    colonne3
    colonne3
    colonne3
    colonne3
    colonne3
    donc j'ai compris que l'instruction select @colonne from table ne rends pas le contenu de la colonne mais le nom de la colonne
    j'ai essayé em mettant [@colonne] mais ca donne une erreur.

    quelqu'un peut me dire comment faire passer la valeur de @colonne pour qu'elle soit prise en charge par le code comme nom de colonne et pas un simple texte a afficher ??

    merci de votre aide!

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Tu dois générer du SQL dynamique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DECLARE @sql varchar(1000)
    SET @sql = 'SELECT [' + @colonne + '] FROM dbo.punktrettung' 
    EXEC(@sql)

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 112
    Points : 94
    Points
    94
    Par défaut Merci!
    Bonjour Rudi et Merci pour ta réponse
    C'etait exactement ce qu'il fallait faire! Merci encore

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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