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 :

agir sur l'ordre des colonnes ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Par défaut agir sur l'ordre des colonnes ?
    Bonjour,

    j'ai une petite question : est-ce qu'il est possible de modifier l'ordre des colonnes d'un table ? ou bien de rajouter une colonne à une position précise par exemple ?

    je vous explique le problème :c'est par rapport à BCP.
    Il y a des temps en temps des colonnes qui se rajoutent au beau milieu du fichier que je dois importer...donc il y a un décalage BCP plante.

    jusqu'à présent j'ai rien trouver de mieux que de rajouter le champ/ récuperer le code sql de la table / couper-coller le champ où je le veux réellement / créer nouvelle table /deplacer les données / supprimer la vieille table / renommer...

    Mais je pense qu'il doit y a avoir plus intelligent comme façon de faire

    Merci !

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    1. D'un point de vue SQL, la question n'a pas de valeur puisque l'ordre physique ne devrait pas jouer de rôle.
    2. C'est possible cependant via l'Enterprise Manager : le déplacement d'une colonne (drag&drop) modifie le colid de syscolumns
    3. autrement, jusqu'en 2005 non compris, il y a possibilité, avec un bon doigté, de modifier "à la main" via update dans syscolumns, mais pas conseillé car gros impact, surtout si colonne indexée ou référencée.
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    C'est à dire que si ton fichier de base a parfois une différence de format (i.e. de nombre de colonnes), tu pourras jamais rien automatiser... T'auras beau écrire tout le code que tu veux, une intervention manuelle sera toujours nécessaire

    Donc ta manipulation manuelle reste la meilleure...

    Mais faut résoudre soucis à la source, bien sur, demander à celui qui te fournit le fichier pourquoi t'a des colonnes en plus

  4. #4
    Invité
    Invité(e)
    Par défaut
    Une petite recherche rapide vous aurait aidé.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Pour BCP il suffit d'utiliser un fichier de format et le tour est joué. Pas besoin de modifier l'ordre des colonnes d'une table ou de rajouter une colonne à une position précise, car cela est sémantiquement idiot.

    A lire : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L6

    Pour en savoir plus sur les fichier de format de bcp : aide avec MAJ + F1 dans l'analyseur de requêtes "Utilisation de fichiers de format".

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre confirmé Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Par défaut
    ok merci pour vos réponses. Je mets en résolu mais :

    @Zers : oui enfin, c'est prévu quand même que le nouveau champ se rajoute, evidement

    . Pas besoin de modifier l'ordre des colonnes d'une table ou de rajouter une colonne à une position précise, car cela est sémantiquement idiot.
    Point de vue SQL peut être, mais pas point de vue "humain"...rien que pour "regrouper" un peu les champs entre eux.

    Ex : à l'origine une table contient un champ "nom", puis 3 mois après on se dit "il faut rajouter le prénom", et bien voilà
    nom........X champs entre......... prénom

    (je sais que sql permet d'afficher/d'ordonner ce qu'on veut mais même)
    pour moi ce serait tout naturel de placer prénom à coté de nom...rien que pour dans tous les outils SQL la liste des champs, les TreeView, qu'on ait un aperçu direct quoi.

    Nom/Prénom ok c'est bidon comme exemple : mais par exemple, justement si quelqu'un ne connait pas la structure de la table, si les champs étaient un peu "groupés", ça aiderait tout de suite
    (d'ailleurs c'est prévu dans mysql : "add column AFTER column_name ]", c'est bien que c'est utile)

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

Discussions similaires

  1. choisir l'ordre des colonnes sur un histogramme vbar
    Par distro dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 08/02/2009, 22h32
  2. [C#] ordre des colonnes dans un datagrid
    Par enfants dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/06/2006, 01h35
  3. Ordre des Colonnes d'une requête
    Par dlh1222 dans le forum Access
    Réponses: 4
    Dernier message: 14/09/2005, 23h43
  4. Rajout colonne - changer l'ordre des colonnes ?
    Par Coptere dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 13/09/2005, 10h56
  5. [Débutant] DISTINCT sur une seule des colonnes ?
    Par Neilos dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/06/2004, 23h04

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