[ERROR] Collation 충돌 ( Korean_Wansung_CI_AS,SQL_Latin1_General_CP1_CI_AS )
Collation : SQL Server의 기본 데이터 정렬을 설정하는 옵션
Collation 종류 보기 : SELECT * FROM ::fn_helpcollations()
1. Collation 확인
< DB Collation >
SELECT SERVERPROPERTY('collation')
< DB Collation 리스트 >
SELECT name, collation_name FROM sys.databases;
< Column Collation 리스트 >
SELECT name, collation_name FROM sys.columns
2. Collation 변경
< DB Collation 변경 >
- ALTER DATABASE CollateDb
- COLLATE Korean_Wansung_CI_AI
- GO
- Table Column Collation 이 다른 것이면 "칼럼 'xxx'는 데이터베이스 데이타 정렬에 종속되어 있습니다." 라는 메시지 발생 가능
< Table Column Collation 변경 >
- ALTER TABLE 테이블명
- ALTER COLUMN 칼럼명 VARCHAR(50) COLLATE Korean_Wansung_CI_AI
- GO
- 인덱스, CHECK 제약조건, Foreign Key 제약조건, 계산된열 등의 Column은 변경 불가
따라서 PK 제거 -> Collation 변경 -> PK 재생성 으로 처리
3. Collation 이 맞지 않는 경우 오류
- 두 테이블간 Collation 이 맞지 않을 때 발생 ( 예: DB1 과 TempDB 안의 테이블간의 조인시 Collation 이 틀려 발생한 에러 )
System.Data.SqlClient.SqlException: equal to 작업에서의 "Korean_Wansung_CI_AS"과(와) "SQL_Latin1_General_CP1_CI_AS" 간의 데이터 정렬 충돌을 해결할 수 없습니다.
원본 : http://rocabilly.tistory.com/53
'▣ DB ▣ > ◈ MS-SQL ◈' 카테고리의 다른 글
STDistance, geography (0) | 2019.03.17 |
---|---|
MSSQL TABLE 캐싱하기 (0) | 2017.02.08 |
Session 상태를 유지하기 위한 설정 (0) | 2015.08.24 |
MSSQL에서 시퀀스 트랜젝션 (@@IDENTITY ,IDENT_CURRENT,SCOPE_IDENTITY) MSSQL (0) | 2013.08.12 |
MS SQL 2012 WEB EDITION SERVER - 패키지 구성/실행 문제 (0) | 2013.05.28 |