• 쇼핑몰
  • 커뮤니티
  • 북마크

MSSQL

[MSSQL][ERROR] Collation 충돌 ( Korean_Wansung_CI_AS,SQL_Latin1_General_…

아트스퀘어
2020.03.13 01:05 9,624 0
  • - 첨부파일 : artsquare.jpg (37.2K) - 다운로드

본문

  
[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" 간의 데이터 정렬 충돌을 해결할 수 없습니다.



출처: https://rocabilly.tistory.com/53 [프로그램이 좋다]

댓글목록 0

등록된 댓글이 없습니다.