|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : janvier 2005 Messages : 114 ![]() |
Bonjour,
Je travaille avec SQL-Server 2008. Lorsque je vais sur la console de SQL-Server et que je tape Code :
000050 000051 000-05 000-059 000069 Comment la donnée 000-05 peut elle etre à la fois supérieure à 000051 et inférieur à 000069 Tout se passe comme s'il "ignorait" le caractère '-' Le champ en question de type char(20) Merci. |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : août 2009 Messages : 779 ![]() |
Un problème de collation.
Essayez avec : ORDER BY MonChamp COLLATE Latin1_General_BIN |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : janvier 2005 Messages : 114 ![]() |
Merci,
Au niveau de la console ça marche ! Maintenant au niveau de mon appli en Visual c#, lorsque j'envoie la même requete, ça ne marche pas. J'ai trouvé dans les propriétés de ma base de données, qu'on pouvait paramétrer le classement à Latin1_General_BIN. Dés que tous les utilisateurs sont partis, je fais une copie de ma base et j'essaie de changer cette propriété. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : janvier 2005 Messages : 114 ![]() |
Bon finalement le mot cle COLLATE fonctionne bien pour afficher des données triées. Mais cela ne marche plus dés qu'on envoie des requetes de selection par comparaison de valeur ( Ou alors c'est une syntaxe du type usine à gaz)
J'ai fini par comprendre tout le problème grace au tuto: http://sqlpro.developpez.com/cours/s...er/collations/ On ne peut pas modifier le type de tri au niveau de la base de données complète. Une fois que le tri est choisi à la création de la base c'est fini !! Tant pis pour moi c'est trop tard. On peut par contre modifier le type de tri au niveau d'une table, j'ai essayé ça marche trés bien. Sauf que !!!! Il faut modifier le tri pour toutes les tables et toutes les vues, sinon SQL est incapable de faire un lien entre deux tables qui n'ont pas le même type de tri. C'est logique il ne posséde pas la même régle de test d'égalité pour les 2 tables. Il ne me reste plus qu'à recréer une base de données vide, choisir le bon type de tri dés le départ, recréer mes tables et y importer mes données !!! Encore un joyeux week-end de bloqué au boulot, pour un mauvais choix effectué au départ. Alors maintenant si quelqu'un a une petite idée pour me permettre d'automatiser un max ces opérations, notament la partie création des tables et des vues de données, j'ai environ 400 tables et vues à recréer !! Et se faire ça à la main, merci du cadeau!! Merci. |
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Plus exactement, dans chaque vue et chaque table, les colonnes sont créées avec un type de données et la collation fait partie intégrante du type de données. Si une table est créée avec une collation X et que la vue est créée avec cette même collation X, alors, la modification de la colonne dans la table par recréation de cette colonne avec par exemple une collation Y, n'affecte pas la vue qui conserve la collation X !
C'est normal et logique, car il est parfaitement possible pour un site multilingue de définir autant de vue qu'il y a de langues, avec pour chaque vue une collation spécifique à la langue pour toutes les colonnes littérales ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
Copyright © 2000-2012 - www.developpez.com