2010-12-02 4 views
4

У меня есть база данных SQL Server 2008 и поле таблицы nvarchar(256). Сумасшедшая проблема заключается в том, что, когда я запускаю этот запрос:Невозможно вставить символ '≤' в SQL Server 2008

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

, а затем

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

Я получаю этот результат:

12202 detection_limit = asjdklasd 11 

Вы можете увидеть, что ≤ символ был преобразован в =

Это, конечно, проблема с кодировкой, если я пытаюсь вставить '≤' в Notepad ++ он вставляет '=', но я получаю '≤', когда я конвертирую ANSI в UTF-8.

Так что я думаю, что я должен написать запрос в UTF8 .. но как? Благодарю.

ответ

7

Вам необходимо использовать префикс N, поэтому литерал обрабатывается как Unicode, а не обрабатывается как символьные данные на кодовой странице настройки сортировки по умолчанию вашей базы данных.

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

Это было так просто ...! Это работает, спасибо. – 2010-12-02 14:41:41

1

Пробег: update ruds_values_short_text set value = N'≤ asjdklasd' where rud_id=12202 and field_code='detection_limit'. N указывает, что вы предоставляете национальный язык, чтобы он уважал кодировку.

+1

Спасибо, я обновил свой ответ, хотя я больше не могу назвать его моим, теперь я могу :) – 2010-12-02 14:31:49

Смежные вопросы