Language/NoSQL&JDBC

MSSQL COLLATE 변경

아르비스 2013. 3. 27. 14:03

MSSQL 의 경우 default db set은 Korean_Wansung_CI_AS 으로 설정된다


DB의 character set을 변경 한 경우, 기존 table의 value와 비교 할때 다음과 같은 에러가 발생한다.


 equal to 작업에서의 "Korean_Wansung_CI_AS"과(와) "Korean_Wansung_CS_AS" 간의 데이터 정렬 충돌을 해결할 수 없습니다.



이 경우는 DB table의 character Set 을 Korean_Wansung_CS_AS 로 변경 한 것입니다.


참고로 )  두 캐릭터셋의 차이는 다음과 같습니다.


 - Korean_Wansung_CI_AS

    일반문자와 특수문자가 구분되지 않는다.

 

 - Korean_Wansung_CS_AS 

    일반 문자와 특수문자의 구별이 가능하다.

    * 대소문자 구분 : _CS (가능)   _CI (불가능)

    * 악센트 구분 :   _AS (가능)   _AI (불가능)


table 생성시 지정 방법

 CREATE TABLE [dbo].[TableName] (

     [id] [VARCHAR] (50) COLLATE Korean_Wansung_CI_AS NULL ,

     [pass] [VARCHAR] (50) COLLATE Korean_Wansung_CS_AS NULL 

  ) ON [PRIMARY]



그냥 UTF-8 쓰면 좋잖아?!!! 

멍멍이 고생 안하시길~~