2009-07-22 4 views
0

ich bin usering eine Tabelle mit einem Benutzernamen Spalte und Sortierungs SQL_Latin1_General_CP1_CI_ASSQL Server-Sortierungs, Management Studio Ergebnisse von asp.net abweichen Ergebnisse

jetzt die Abfrage:

1 wählen, wo vorhanden (1 wählen Sie FROM USER_TABLE mIT (NOLOCK) WHERE user_name = 'suessemaus')

in asp.net Ergebnisse: 1 in SQL Management Studio Ergebnisse: [nichts]

gibt es einen Datensatz mit dem Namen "süßemaus" im Vergleich zu Co lation das korrekte Ergebnis ist [nichts] aber warum asp.net ignoriert die Sortierung?

Antwort

0

versuchen 1 wählen, wo vorhanden (1: wählen Sie aus USER_TABLE WITH (NOLOCK) WHERE user_name = 'suessemaus' SQL_Latin1_General_CP1_CI_AS collate)

+0

Ich versuchte es, aber es funktioniert nicht :( –

0

Sie nicht die äußeren Abfrage benötigen. Das wird es tun.

select 1 FROM USER_TABLE WITH(NOLOCK) WHERE user_name='sueßemaus' 

Nun haben Sie "süßemaus" erwähnt aber die Abfrage ist "sueßemaus". Es kann das gleiche sein, wenn Sie keine Umlaute auf Ihrer Tastatur haben und Sie es als Mensch lesen, aber das ist eine völlig andere Abfrage, weil ich mit vielen Namen mit ä ü umgehen ö etc und Sortierung "SQL_Latin1_General_CP1_CI_AS"

Jetzt kann es funktionieren, wenn Sie Kollation zu einem deutschen, aber ich habe es noch nie versucht, und ich weiß nicht, ob es den Austausch von ü -> ue erarbeiten wird oder ue -> ü. Ich vermute es wird nicht, weil bei Case-Sensitivität und Auto-Übersetzung Uetliberg ein sehr falscher ülitberg werden würde. (800+ Meter Hügel westlich von Zürich)