반응형
테이블의 컬럼의 Collation(문자정렬)이 서로 다른 경우 아래와 같이 오류가 발생합니다.
Cannot resolve the collation conflict between "Korean_Wansung_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.
1. 현재 데이터 베이스의 기본 Collation(문자정렬) 확인 하기
SELECT SERVERPROPERTY('collation')
※ MSSQL의 전체 Collation 조회하기
SELECT * FROM ::fn_helpcollations()
2. 컬럼에 특정 Collation(문자정렬)을 지정하여 테이블 생성하기
- 아래의 쿼리는 한글완성형으로 Collation(문자정렬)을 컬럼에 지정한 예입니다.
CREATE TABLE [TABLE_NAME](
[COLUMN_NAME] [nvarchar](50) COLLATE Korean_Wansung_CI_AS
)
3. Collation(문자정렬) 충돌이 발생하면 아래와 같이 WHERE 절의 쿼리를 수정하면 됩니다.
- TB_TABLE1의 NAME 컬럼은 데이터베이스의 기본 Collation(문자정렬)이고, TB_TABLE2의 NAME 컬럼의 Collation(문자정렬)이 Korean_Wansung_CI_AS이면 아래의 WHERE절과 같이 COLLATE DATABASE_DEFAULT로 TB_TABLE2의 NAME 컬럼의 Collation(문자정렬)을 변경하여 쿼리를 수행하면 Collation(문자정렬) 충돌이 해결됩니다.
SELECT *
FROM TB_TABLE1, TB_TABLE2
WHERE TB_TABLE1.NAME = TB_TABLE2.NAME COLLATE DATABASE_DEFAULT
반응형
'데이터베이스 > MSSQL' 카테고리의 다른 글
MSSQL MDB, LOG 파일 기본 경로 얻기 (0) | 2016.02.15 |
---|---|
MSSQL Log 파일 용량 축소하기(DBCC SHRINKFILE 방법) (0) | 2016.02.15 |
MS SQL 버전 별 서비스팩 목록 (0) | 2016.01.08 |
MSSQL sa 계정 잠금 해제 (0) | 2016.01.05 |
MSSQL 영문 대소문자 구분 검색하기. (0) | 2015.11.23 |
댓글