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 :

Déplacer un champ dans une table


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut Déplacer un champ dans une table
    Bonjour,

    Voulant ajouter un champ en première colonne de ma table, j'ai utilisé

    alter table MaTable ADD Column MonChamp CURRENCY

    mais ce champ se trouve en dernière colonne.

    Existe-t-il une requête SQL pour le déplacer, ou tout simplement pour le créer directement au bon endroit ?

    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    bonjour,
    l'ordre des colonnes d'une table n'est que pur aspect graphique
    tu peux le voir "en premier" en l'appelant "en premier" dans ta requete SQL.

    Du point de vue code VBA, tu peux regarder la propriété OrdinalPosition de l'objet Field.

  3. #3
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut
    Hélas, non, pour moi il ne s'agit pas que d'un aspect graphique.

    Je souhaite tout simplement insérer ce champ en début de table, pour qu'il reçoive l'incrémentation automatique de la clé primaire, lors de l'import d'un fichier txt.

    Par une commande SQL, on ne peut rien faire ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    l'autonum n'est pas limité au seul premier champ d'une table

  5. #5
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut
    Effectivement, mais mon import est automatisé, et la clé primaire se trouve en première colonne

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    Ok,
    alors 2 questions :
    - ta table initiale est-elle vide ou contient-elle des données ?
    - t'est-il possible de composer avec une séquence de requêtes ?

  7. #7
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut
    En fait, je vide la table, puis je supprime la première colonne, sinon elle conserve en mémoire le N° de la dernière ligne du précédent import.
    Puis je recrée cette colonne (mais qui est en fin de table).

    Je pourrais effectivement composer avec plusieurs requêtes

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    ok
    plusieurs approches :
    - tu recrées complètement ta table au format initiale
    - DROP + CREATE
    - tu switches le type de champ 2 fois
    - par VBA Field.Type ou SQL ALTER COLUMN

  9. #9
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    bonjour,

    c'est utopique... mais bon.

    Sinon, une discussion similaire, il me semble ici.


  10. #10
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut
    mais oui, tout à fait..

    On dit que tous les chemins mènent à Rome, mais pour l'instant aucun chemin ne m'a encore permis d'aller à mon but..

    Mais mon but est bien toujours le même...

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

    N'as tu pas carrément penser à faire autre chose ?

    Là tu vides ta table, et tu veux changer ta première colonne pour refaire ton NumAuto.

    Si tu la supprimais carrément, et qu'ensuite tu la récrée ? Tu as tout ce qu'il te faut sur le tuto sur DAO

    Philippe

  12. #12
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 136
    Points : 70
    Points
    70
    Par défaut
    Bonjour Philippe, et merci pour tes réponses.

    J'ai résolu mon problème. Je lui ai collé une colonne avec compteur, que j'initialise à 1 avec un pas de 1, et je ne copie dans une autre table que les lignes dont le compteur est supérieur à 5.

    A chaque commande ALTER TABLE, mon compteur est réinitialisé à 1, et ma colonne n'a pas besoin d'être supprimée/recréée

    Bonne journée !

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

Discussions similaires

  1. Supprimer un champ dans une table
    Par valerie90 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/08/2004, 09h53
  2. Modification du nom d'un champ dans une table
    Par reef1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/06/2004, 10h55
  3. Réponses: 2
    Dernier message: 19/05/2004, 10h13
  4. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26
  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