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

Requêtes et SQL. Discussion :

Modifier ordre des colonnes d'une table


Sujet :

Requêtes et SQL.

  1. #1
    Débutant  
    Profil pro
    Bidouilleur
    Inscrit en
    Avril 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2006
    Messages : 145
    Points : 103
    Points
    103
    Par défaut Modifier ordre des colonnes d'une table
    Bonjour a tous,

    je travail en C# sous visual 2008.

    je travail sur une base crée avec acces, je cherche comment faire pour modifier l'ordre des colonnes dans une table.
    j'ai trouvé des forums qui parlent de creer une copie de la base puis de faire les changement ....
    mais j'espere qu'on peut faire plus simple.
    j'ai vu aussi un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE nom_de_la_table ADD nom_de_la_colonne type_de_donnée AFTER nom_de_la_colonne ;
    mais acces m'affiche une erreur de syntax sur le AFTER, apparement acces n'accepte pas la commande AFTER.
    si vous avez des idées je prends !!!

    Merci a tous

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    vu que tu veux une réquête SQL, pourquoi postes-tu dans le forum C#?
    ici, le point central c'est bien Access non? Pourquoi ne pas demander à des experts Access?

    Selon moi, c'est bien souvent en passant par la création d'une table temporaire qu'on peut faire cela, mais c'est une TRES mauvaise idée.

    l'ordre que tu penses définir n'est pas celui de la base, c'est celui d'un pseudo affichage et c'est donc simplement tes requêtes SELECT que tu dois changer. si tu as la main sur le code et sur la base, alors tu n'as aucune raison vraiment valable de vouloir réordonner les colonnes, à part par esthétisme, ce qui n'est pas un critère de développeur
    un peu de lecture: http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L6
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Débutant  
    Profil pro
    Bidouilleur
    Inscrit en
    Avril 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2006
    Messages : 145
    Points : 103
    Points
    103
    Par défaut
    merci Louis-Guillaume Morand
    alors tu n'as aucune raison vraiment valable de vouloir réordonner les colonnes, à part par esthétisme
    et ben non, donc dans ma base je peux creer des colonnes, et donc quand je creer une colonne il l'ajoute a la fin de ma table, et du cout quand je souhaite ajouter une ligne en utilisant des requetes parametrée, une partie de ma ligne est rempli par un programme A et l'autre partie par un programme B il est donc bine pratique de regrouper les colonnes qui sont rempli par le prog A, et de regrouper les autres.

    enfin je ne sais pas si c'est claire mais en somme ce n'est pas une histoire d'esthetique, sinon j'aurais pu utiliser mon DataGridView ou un table.SetOrdinal pour les reorganiser, mais ces deux methodes ne le font qu'en local, ma base n'est pas changée.

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    ca reste de l'esthétisme selon moi. quand tu fais de l'insertion, tu précise les colonnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO T_TABLE (col1, col3, col8)
    donc au niveau des requêtes ca ne change rien, au niveau de la lecture, ca ne change rien non plus. la seule chose qui change, c'est quand tu ouvres la base "manuellement" (access direct) pour voir les données, là c'est plus simple de les voir regroupées mais ca reste encore de l'esthétisme. Mais bon, c'est ton choix et je ne vais pas t'y empêcher
    Je laisse donc place aux experts Access qui devraient rapidement pouvoir répondre à ton besoin
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  5. #5
    Débutant  
    Profil pro
    Bidouilleur
    Inscrit en
    Avril 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2006
    Messages : 145
    Points : 103
    Points
    103
    Par défaut Ce n'est pas de l'esthetisme
    une requete parametrée ressemble a ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete.CommandText = "INSERT INTO [" + SelectedTable + "] VALUES (@0,@1,@2.....);
    ou les @x representent les valeur a affecter aux colonnes.
    La colonne0 recevera @0, la colonne1 recevera @1 ....
    donc si les colonnes ne sont pas dans le bon ordre, les valeurs ne seront pas affectée aux bonnes colonnes, et si par malchance j'essaye d'ecrire des caracteres "string" dans un champs qui accepte que des "date"s et bien mon programme n'aime pas trop et c'est vrai que c'est un peu un probleme d'esthetique vu qu'un gros plantage n'est jamais tres beau

    The Question is : comment modifier l'ordre des colonnes pour que mes colonnes coicident bien au @x qui leur sont destinés

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je rejoins Louis-Guillaume sur le fait qu'il ne s'agit d'un aspect esthétique.

    Le hic, c'est que tu utilises l'ordre des colonnes pour faire tes requêtes, ce qui est une mauvaise idée.

    En effet, pour debuguer des requêtes ou autre, avoir le nom du champ plutôt que son numéro d'ordre fait gagner énormément de temps.

    Si dans quelques mois tu es obligé de retravailler ton application tu béniras le fait d'avoir les noms.

    Je ne t'encourage pas vers cette voie de travailler avec les numéros.

    Philippe

  7. #7
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete.CommandText = "INSERT INTO [" + SelectedTable + "] VALUES (@0,@1,@2.....);
    devait ressembler à ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete.CommandText = "INSERT INTO [" + SelectedTable + "] (col1, col3, col2, ...) VALUES (@0,@1,@2.....);
    il faut préciser l'ordre des colonnes à l'insertion. ca te permet de ne pas être dépendant de l'ordre des colonnes qui peut changer, notamment si tu rajoutes une colonne ou si tu modifies une colonne (type de données).
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

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

Discussions similaires

  1. [11gR2] Modifier l'ordre des colonnes d'une table sous Oracle
    Par doudou8mc dans le forum SQL
    Réponses: 7
    Dernier message: 07/11/2014, 14h57
  2. Modifier l'intitulé des colonnes d'une table
    Par benbrisefer dans le forum SAS Base
    Réponses: 2
    Dernier message: 30/03/2009, 13h58
  3. Modifier la structure des colonnes d'une table
    Par alonsyl dans le forum Modélisation
    Réponses: 1
    Dernier message: 04/10/2008, 14h10
  4. Ordre des colonnes dans une table
    Par c.langlet dans le forum Administration
    Réponses: 3
    Dernier message: 16/05/2007, 18h39
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

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