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 :

Ajout d'une colonne à l'interieur d'une table .


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 43
    Points : 41
    Points
    41
    Par défaut Ajout d'une colonne à l'interieur d'une table .
    Bonjour ,

    Je veux ajouter une colonne à une table mais pas à la fin .

    mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    alter table [nom_table] add
    [nom_colonne] [bit]  NULL  DEFAULT ((1))
    ajoute la colonne mais automatiquement au dernier rang .

    je veux que ma colonne soit ajoutée au 3 rang par exemple , directement après la colonne col3 .

    Cordialement .

  2. #2
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Attention, l'ordre des colonnes n'a absolument aucun sens en sql.

    Toutefois si pour un aspect cosmétique vous souhaitez le faire, vous pouvez soit :
    - jouer avec certains tables systèmes. je crois que rappeler que cette information est stockée quelque part.
    - supprimer la table et la recréer (en passant par une table temp pour conserver les données).
    Alexandre Chemla - Consultant MS BI chez Masao

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Je confirme, l'ordre des colonnes est une question d'esthetisme...
    Tu peux toujours préciser l'ordre des colonnes dans ta requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT col1,col3,col2 FROM matable;
    GO
    Cependant, si cela t'empêche de dormir, tu peux toujours modifier l'ordre des champs à partir de enterprise manager sous SQL Server 2000 ou Management Studio sous SQL Server 2005.
    Il faut aller dans l'édition de ta table puis faire glisser la ligne qui correspond à ta colonne pour la mettre là où tu souhaites...
    Attention cependant, si ta table contient beaucoup de données, ça peut prendre du temps car SQL Server semble créer une nouvelle table pour y créer les colonnes dans le nouvelle ordre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    USE mabase;
    GO
     
    SELECT * FROM syscolumns WHERE id = object_id('matable');
    GO
    Tu verras qu'après ta manip, l'id de ta table ne sera plus la même...

    Bon courage.

    David.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Points : 137
    Points
    137
    Par défaut
    Petite précision, il n'est de toute façon plus possible (depuis la version 2005 de SQL Server) de modifier directement les tables système.

    En effet, l'option 'allow updates' de sp_configure n'est plus pris en compte par le moteur SQL Server...
    Voir la doc de Microsoft en cliquant ici

    Cordialement.

    David.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 55
    Points
    55
    Par défaut Quelle est la finalité ?
    Bonsoir,

    Pourquoi insister sur l'ordre des champs alors que la table n'est visible de l'extérieur ( sur une interface par exemple ) que par une requête SQL ?

    Quelle est la finalité? La connaissant, on trouvera la meilleure solution.

  6. #6
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 43
    Points : 41
    Points
    41
    Par défaut
    Au faite car j'avais des fonctions et procédures déjà programmé sur l'ancienne ordre .

    J'ai du revoir mes fonctions et procédures .

    Merci .

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

Discussions similaires

  1. Ajouter 'TER222' devant un nombre dans toute une colonne
    Par TheTcha dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 08/01/2013, 12h50
  2. Ajout d'une colonne au résultat d'une requête Select
    Par Namm Comm dans le forum Développement
    Réponses: 5
    Dernier message: 30/03/2012, 02h14
  3. [XL-2003] Trier une colonne de moyenne, rattachée à une colonne de noms
    Par floctc dans le forum Excel
    Réponses: 3
    Dernier message: 11/03/2011, 09h57
  4. Réponses: 2
    Dernier message: 20/02/2008, 18h08

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