본문 바로가기

데이터베이스/MSSQL

데이터 정렬 변경 및 변경 자료

▶ MSSQL 2005 디폴트 설치시 선택되는 디폴트 데이터 정렬 방식은 "Korean_Wansung_CI_AS"

 

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

 

[예제]

데이터에 'free'(일반문자)와 'FREE'(특수문자)가 있다고 가정했을때

SELECT * FROM table WHERE string = 'free' 쿼리 결과는 두 데이터 모두를 검출한다.

 

[해결]

일반문자와 특수문자를 구분하고 싶다면

데이터 정렬 방식을 "Korean_Wansung_CI_AS_KS_WS"로 변경한다.

 

(데이터베이스)

생성시 문법 : CREATE DATABASE 데이터베이스 COLLATE 데이터정렬방식;

변경시 문법 : ALTER DATABASE 데이터베이스 COLLATE 데이터정렬방식;

 

(테이블)

변경시 문법 :

ALTER TABLE 테이블명 
ALTER COLUMN 컬럼명 데이터형 COLLATE 데이터정렬방식;

ALTER TABLE tabFlights 
ALTER COLUMN LeavingFrom VARCHAR(50) COLLATE Korean_Wansung_CI_AI;

  

[자료]

용어

옵션값

설명

이진

_BIN

각 문자에 대해 정의된 비트 패턴을 기준으로 데이터를 정렬 및 비교하려면 이 데이터 정렬을 선택합니다. 이진 정렬 순서는 대/소문자(소문자가 대문자 앞에 와야 함) 및 악센트를 구분합니다. 이것은 가장 빠른 정렬 순서입니다.

이 데이터 정렬을 선택하면 대/소문자 구분악센트 구분,일본어 가나 구분 및 전자/반자 구분 옵션을 사용할 수 없습니다.

이진2

_BIN2

각 문자에 정의된 비트 패턴에 따라 데이터 데이터를 정렬 및 비교하려면 이 데이터 정렬을 선택합니다. 이진 정렬 순서는 대/소문자(소문자가 대문자 앞에 와야 함) 및 악센트를 구분합니다. 이것은 가장 빠른 정렬 순서입니다.

이 데이터 정렬을 선택하면 대/소문자 구분악센트 구분,일본어 가나 구분 및 전자/반자 구분 옵션을 사용할 수 없습니다.

대/소문자 구분

_CS(O)

_CI(X)

대문자와 소문자를 구분하려면 이 옵션을 선택합니다.

악센트 구분

_AS(O)

_AI(X)

악센트가 있는 문자와 악센트가 없는 문자를 구분하려면 이 옵션을 선택합니다. 예를 들어 'a'와 'á'는 같지 않습니다.

일본어 가나 구분

_KS

두 가지 유형의 일본어 가나 문자를 구분하려면 이 옵션을 선택합니다. 히라가나와 가타가나를 구분하도록 지정합니다.

전자/반자 구분

_WS

단일 바이트 문자(반자)와 더블바이트 문자로 표시될 때의 동일한 문자(전자)를 구분하려면 이 옵션을 선택합니다.