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 :

requete ALTER TABLE pour ajout de champ


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut requete ALTER TABLE pour ajout de champ
    Bonjour,
    Je dois lancer la requête suivante sur ma table, mon but étant d'ajouter un champ numéroauto, et le forcer à démarrer à 1 :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE [Trame]
    ADD nui COUNTER(1);

    Cette requete marche, mais elle ajoute toujours le champ en fin de table.

    =>Comment puis-je faire pour ajouter ce champ en début de table ?

    Merci pour votre aide...


    (ou autre solution pour avoir un champ équivalent, qui "numérote" les enregistrements, en démarrant à 1)

  2. #2
    Membre habitué
    Femme Profil pro
    Database
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Database

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    Mysql permet d'insérer une colonne en premier via la commande "FIRST", la syntaxe est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE tbl_name
      ADD [COLUMN] column_def FIRST
    Mais je ne suis pas sûr que cette option existe au niveau d'access....

    Bonne recherche

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    La nuit porte conseil, voici une façon simple de créer un "faux" numéroauto :

    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
    Public Function numérote(matable As String, monchamp As String)
       Dim rst  As DAO.Recordset
       Dim wrk As Workspace
       Dim i As Integer
     
        Set wrk = DBEngine.Workspaces(0)
        Set rst = CurrentDb.OpenRecordset(matable)
        i = 0
     
        While Not rst.EOF
          i = i + 1
          rst.Edit
          rst.Fields(monchamp).Value = i
          rst.Update
          rst.MoveNext
        Wend
    End Function

  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 644
    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 644
    Points : 34 351
    Points
    34 351
    Par défaut
    salut,
    a noter que l'ajout du champs en "premier" n'est pas vraiment pertinent, dans la mesure ou les champs sont interchangeables et leur ordre ne depend que de celui que l'utilisateur souhaite leur appliquer

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    On peut effectivement modifier l'ordre des champs au niveau d'un SELECT, bien vu ...

  6. #6
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 222
    Points
    222
    Par défaut
    Voici comment on redresse l'odre des colonnes d'une table après l'orde Alter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    currentdb.execute "ALTER TABLE [Trame] ADD nui COUNTER(1);"
    currentdb.TableDefs("trame").Fields("Nui").OrdinalPosition = 1
    L'ecriture de cette ligne n'oblige pas à charger le moteur DAO

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    Wow, super, je ne pensais même pas que ce soit possible aussi simplement !

Discussions similaires

  1. Simuler une jointure pour ajouter des champs à une table
    Par Camelia17 dans le forum DataStage
    Réponses: 0
    Dernier message: 28/01/2015, 16h18
  2. [AC-2010] Requete de comparaison pour tous les champs entres 2 tables
    Par helico57570 dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 03/04/2014, 12h56
  3. [AC-2007] Requête pour ajouter une champ calculé à une table
    Par GroFlo dans le forum IHM
    Réponses: 2
    Dernier message: 14/02/2012, 15h51
  4. Alter table pour l'ajout de contrainte not null
    Par jean sami dans le forum SQL
    Réponses: 6
    Dernier message: 18/09/2008, 17h42
  5. Modifier un etat pour ajouter un champ d'un autre table
    Par Monsieur Peck dans le forum Access
    Réponses: 2
    Dernier message: 21/06/2006, 10h08

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