2010-12-02 5 views
4

Ich habe eine SQL Server 2008-Datenbank und ein nvarchar(256) Feld einer Tabelle. Das verrückte Problem ist, dass, wenn ich diese Abfrage ausführen:Kann das Zeichen '≤' in SQL Server 2008 nicht einfügen

update ruds_values_short_text 
set value = '≤ asjdklasd' 
where rud_id=12202 and field_code='detection_limit' 

und dann

select * from ruds_values_short_text 
where rud_id=12202 and field_code='detection_limit' 

ich dieses Ergebnis:

12202 detection_limit = asjdklasd 11 

Sie können sehen, dass der Charakter ≤ transformiert wurde, in =

Es ist ein Problem mit Codierung, in der Tat, wenn ich versuche, "≤" in Notepad ++ einzufügen Es fügt '=' hinzu, aber ich bekomme '≤', wenn ich ANSI in UTF-8 umwandle.

Also .. ich denke ich sollte die Abfrage in UTF8 schreiben .. aber wie? Vielen Dank.

Antwort

7

Sie müssen das Präfix N verwenden, damit das Literal als Unicode behandelt wird und nicht als Zeichendaten in der Codepage der Standardsortierung Ihrer Datenbank behandelt wird.

update ruds_values_short_text 
set value = N'≤ asjdklasd' 
where rud_id=12202 and field_code='detection_limit' 
+0

Es war so einfach ...! Es funktioniert, danke. –

1

Versuchen Sie update ruds_values_short_text set value = N'≤ asjdklasd' where rud_id=12202 and field_code='detection_limit'. Das N gibt an, dass Sie die Landessprache bereitstellen, so dass die Codierung berücksichtigt wird.

+1

Danke, ich habe meine Antwort aktualisiert, obwohl ich sie jetzt nicht mehr als meine bezeichnen kann. –