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 :

utilisation d'une variable comme nom de colonne


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Par défaut utilisation d'une variable comme nom de colonne
    bonjour,

    Je suis en train d'écrire une procédure pour remplacer les valeurs null dans une table, à partir de champs d'une autre table, ayant en commun l'identifiant (l'adresse mail ) comme les autres champs doivent rester différent si les valeurs ne correspondent pas, je fais une procédure qui colonne après colonne, va faire un update.

    j'ai donc (extrait )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DECLARE @colonne varchar(64)
    DECLARE curseurVariables CURSOR FOR SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'enews'
    OPEN curseurVariables 
    FETCH curseurVariables INTO @colonne
     
    WHILE @@FETCH_STATUS = 0 
    BEGIN 
    PRINT @colonne 
    UPDATE FROM table1 @colonne= table2.@colonne from table2 where...
    et là c'est le drame, j'ai pas fait de test mais ca me parait gros comme une maison que ca ne marchera pas.

    Est ce que cette ecriture pourrait passer ? Une idée pour remplacer ?

  2. #2
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Tu utilises quelle version SQL Server ?
    SQL 2000 ou SQL 2005/2008 ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Membre éclairé Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Par défaut
    2005

  4. #4
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Evite d'utiliser les cursuers => problèmes de performances

    Tu as des idées ICI pour éviter l'utilisation des curseurs
    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Membre éclairé Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Par défaut
    je vais voir ça merci

    si j'ai bien compris l'écriture table2.@colonne ne marche pas c'est ça ?

    dans ce cas là comment faire en sorte que le update aille prendre la valeur correspondante dans la seconde table, à la ligne dont l'email est identique ?

  6. #6
    Membre éclairé Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Par défaut
    ouep je suis coincé, je vois pas comment écrire la requête du coup, pour qu'il me remplace tout les null par la valeur de la même colonne dans l'autre table, prise à la ligne qui aura la même chose dans la colonne email

    malheureusement on ne peut pas faire n'importe quoi comme join etc dans les sous requetes

  7. #7
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    Citation Envoyé par argonath Voir le message
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE FROM table1 @colonne= table2.@colonne from table2 where...
    PAS BON.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE  MaBase.schema.maTable SET maTable.macolonne = valeurAmettre
    WHERE ....
    Etienne ZINZINDOHOUE
    Billets-Articles

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/06/2014, 17h43
  2. utiliser une variable comme nom d'objet! est-ce possible?
    Par Rusty2096 dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 07/06/2009, 15h33
  3. [ProC][SQL] Utiliser une variable comme nom de curseur
    Par adiGuba dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 06/12/2006, 11h55
  4. Utiliser une variable comme nom de fichier
    Par lo00_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/06/2006, 13h57
  5. [curseurs] utiliser une variable comme nom de champ
    Par Christian31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2005, 14h12

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