MS-SQL DB 쿼리에서 대소문자 구분???


오늘도 하나의 버그(bug)를 발견하면서 새로운 것도 하나 알게되어 글을 올립니다.

"MS-SQL DB 쿼리에서 대소문자 구분~" 어떻게 할까요~?
첫번째는 테이블을 만들때 대소문자를 구분 할것인지 말것 인지를 정해주어 대소문자를 구분할 수 있게 해주는 방법이 있구요.
두번째는 임시로 쿼리를 사용할 때 대소문자 구분을 하게 할 수 있습니다.

그런데 보통 테이블을 생성하면 대소문자 구분을 안하게 하는걸로 생성되는 경우가 많기 때문에 두번째 방법을 쓰는것이 유용하겠네요~ 물론 항상 대소문자를 구분해줘야 하는 부분이라면 테이블 생성시 구분하게 설정해 주는게 좋은 방법이겠죠~!!

설명하자면, 보통 테이블 생성시
CREATE TABLE [dbo].[EXCEPTION](
...
[EXCEPTION] [varchar](100) COLLATE Korean_Wansung_CI_AS NULL
...
)
이런 쿼리를 사용하게 되는 경우가 Default 인거 같더군요.
그리고 위 쿼리에서 색깔이 들어간 부분이 대소문자를 구분하고 안하고를 정해주게 됩니다.

COLLATION : Korean_Wansung_CI_AS = 대소문자 구분 안함
COLLATION : Korean_Wansung_CS_AS = 대소문자 구분함

대소문자 구분을 설정안하고 테이블 생성했다면
SELECT * FROM EXCEPTION WHERE EXCEPTION='ABCDEF'

SELECT * FROM EXCEPTION WHERE EXCEPTION='abcdef'
의 결과는 똑같게 나오게 됩니다.

항상 대소문자를 구분할 필요가 없다면
SELECT * FROM EXCEPTION
WHERE EXCEPTION COLLATE Korean_Wansung_CS_AS = 'ABCDEF'

이렇게 쿼리를 사용할 때 색깔이 들어간 부분을 포함해서 사용하면 테이블 생성시 사용한 것과 똑같은 효과를 얻을 수 있습니다.

이상입니다.
설명을 흠~ 정신없이 했네요~ 그래도 이해는 되죠~?? ㅡㅡㅋ

도움글 출처 :
MS-SQL DB 대소문자 구분??