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

Développement SQL Server Discussion :

[SQLSERVER2k8] Tri non respecté lors du rapatriement des données


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Points : 6
    Points
    6
    Par défaut [SQLSERVER2k8] Tri non respecté lors du rapatriement des données
    Bonjour,

    Depuis la migration d'un SQL Server 2000 à 2008, le tri effectué par le sort type dans mes views n'est plus respecté lors du rapatriement des données sous Excel. J'ai tout essayé, les propriétés de la plage de données dans Excel sont correctes, je ne vois vraiment pas d'où vient le problème. Lorsque je fais un refresh des données sous Excel, les lignes changent toutes de place.

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Que retourne votre requête lorsque vous l'exécutez sous SQL Server Management Studio ?
    Spécifie-t-elle un ORDER BY ? Sans cette clause, sachez que l'ordre n'existe pas en SQL

    @++

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci pour cette réponse rapide, exécutée sous sql server la requête est bien ordonnée. Il y a bien un order by.

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Donc le problème se situe dans Excel.
    Voyez avec les experts Excel

    @++

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Ok merci

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 922
    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 922
    Points : 51 717
    Points
    51 717
    Billets dans le blog
    6
    Par défaut
    Depuis la migration d'un SQL Server 2000 à 2008, le tri effectué par le sort type dans mes views n'est plus respecté lors du rapatriement des données sous Excel
    Ce n'est ni excel, ni sql server qui est en cause dans ce cas. Mais c'est vous la cause !
    En effet une vue n'étant autre chose qu'une table d'un type particulier, forcer un ORDER BY dans une vue n'a aucun sens, puisque au final vous pouvez faire SELECT * FROM MaVue ORDER BY ... ! Même si cela est possible par TOP 100 PERCENT et cie...

    En conclusion, SQL Server se moque éperdument que vous ayez mis une clause ORDER BY dans une vue parce que c'est imbécile ! Et j'ajouterais qu'il a bien raison !

    A +

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Si c'est si imbécile que ça, pourquoi le tri se fait bien dans SQL Server ?

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 922
    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 922
    Points : 51 717
    Points
    51 717
    Billets dans le blog
    6
    Par défaut
    Vous devez comprendre que cette clause ne sert que dans un seul et unique cas : rapatrier moins de ligne que le select global. Si vous faites TOP 100% alors SQL Server s'en fout et il a bien raison, sinon cela nuirait aux performances.

    Ce sont les principes même des bases de données relationnelles qui impose que les données dans une table (et une vue EST UNE TABLE) n'ait aucun ordre particulier.

    A +

  9. #9
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Ok je comprends le concept, mais ce que je ne comprends pas c'est pourquoi ça fonctionnait jusqu'à la migration de SQL Server 2000 -> 2008, et pourquoi c'est ordonné dans SQL Server même avec le TOP 100 PERCENT... C'est lors du passage SQL Server -> Excel que les lignes se re-mélangent, avant je n'avais pas ce problème étant donné que j'ai une grosse centaine de fichiers en VBA qui sont codés en fonction de l'ordre d'une colonne en particulier...

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 922
    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 922
    Points : 51 717
    Points
    51 717
    Billets dans le blog
    6
    Par défaut
    SQL Server ne garantie en aucune façon que cela marche sur aucune version. Si cela a marché sur une version - c'est votre constat - c'est parce que, par pur hasard, le moteur l'a traité dans cet ordre.
    Bref, vous avez utilisé une fonctionnalité détournée en croyant qu'elle faisait ce que vous aviez envie qu'elle fasse et non pas ce pourquoi elle a été conçue !

    Par exemple vous pouvez utiliser une chambre à air pour faire une bouée, mais une chambre à air n'étant pas conçu pour cet usage, le jour ou elle vous éclate à la gueule et vous cisaille le visage, il ne faudra pas venir vous plaindre !

    A +

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/08/2014, 11h39
  2. Réponses: 11
    Dernier message: 07/12/2011, 08h11
  3. Police texte non respecté lors d'un visionnement
    Par Angellman dans le forum Powerpoint
    Réponses: 1
    Dernier message: 12/02/2011, 08h10
  4. Réponses: 2
    Dernier message: 20/11/2006, 22h42
  5. [DbEdit] Pb lors de modififications des données de DbEdit
    Par dem dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/12/2005, 19h05

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