Bonjour à la communauté de developpez.com
Je suis actuellement confronté à un problème très bizarre sur SQL SERVER (version 2008 R2, 10.50.2500.0).
Je m'explique. Dans une des tables SQL SERVER, j' ai un champ de type string qui renseigne un nom : "S. BICKLEY".
Alors, si Je fais une requête du type :
Si je fais un update avec une requete du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT nom_champ FROM Nom_table WHERE nom_champ='S. BICKLEY' --> rien SELECT nom_champ FROM Nom_table WHERE nom_champ like '%S. BICKLEY%' --> ok ca s'affiche SELECT nom_champ FROM Nom_table WHERE nom_champ like '%S. BICKLEY'--> rien SELECT nom_champ FROM Nom_table WHERE nom_champ like 'S. BICKLEY%' --> ok ca s'affiche
UPDATE nom_table SET nom_champ='S. BICKLEY' WHERE nom_champ like '%S. BICKLEY%'
tout refonctionne normalement... ouf ! mais bof quand même ;-)
Bref, vous l'aurez compris, c'est comme si ce qui est écrit dans ma table n' est pas vraiment ce qui est écrit ...
Et ce problème n' apparait qu'avec ce nom. J' ai vérifié 50 fois : il n' y a pas d'espace après 'BICKLEY' ni avant 'S.' ...
Je précise que je vois bien l'information écrite dans ma table avec Microsoft SQL Server Management.
Est ce que ce ne pourrait pas venir d'une différence de culture entre mon langage de programmation de l'application qui écrit dans la base
et le moteur SQLSERVER dans sa configuration ?
Ou peut être un problème dans la conversion de caractères ASCII ?
Peut il y avoir une différence entre l'information qui est écrit dans le fichier binaire de donnée SQL ? apparemment oui
J' avoue que je sèche un peu la...
Hervé
Partager