2010-12-02 4 views
4

SQL Server 2008 데이터베이스와 nvarchar(256) 테이블 필드가 있습니다.SQL Server 2008에서 '≤'문자를 삽입 할 수 없습니다.

12202 detection_limit = asjdklasd 11 

당신은 문자 ≤가에서 변환 된 것을 볼 수 있습니다

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' 

나는이 결과를 얻을 : 미친 문제는이 쿼리를 실행할 때이다 =

인코딩 관련 문제입니다. 사실, 메모장에 '≤'을 붙여 넣으려고하면 ++ 붙여 넣기 '='하지만 ANSI를 UTF-8로 변환하면 '≤'이됩니다.

그래서 .. 내가 UTF8 ..에서 쿼리를 작성해야한다고 생각하지만 어떻게? 감사.

답변

7

N 접두어를 사용해야하므로 리터럴은 데이터베이스의 기본 데이터 정렬 코드 페이지에서 문자 데이터로 처리되지 않고 유니 코드로 처리됩니다.

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

너무 간단했습니다 ...! 고마워. –

1

시도 update ruds_values_short_text set value = N'≤ asjdklasd' where rud_id=12202 and field_code='detection_limit'. N은 인코딩을 존중할 수 있도록 자국어를 제공함을 나타냅니다.

+1

고마워, 내가 정말 내게 지금은 더 이상 전화 할 수 없지만 내 대답을 업데이 트했습니다 :) –

관련 문제