Collation 충돌 해결 및 Collation 변경 :: JSP 일반[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

JSP 일반
[1]
등록일:2015-05-21 13:46:36 (0%)
작성자:
제목:Collation 충돌 해결 및 Collation 변경

어떤 이유에서 테이블 컬럼 별 COLLATE가 다르게 셋팅되어 WHERE 절에서 에러가 발생합니다.

 
1
System.Data.SqlClient.SqlException: equal to 작업에서의"Korean_Wansung_CI_AS"과(와) "SQL_Latin1_General_CP1_CI_AS" 간의 데이터 정렬 충돌을 해결할 수 없습니다.

그런 경우 같은 Collation으로 변환하여 처리가 가능합니다.

 
1
2
3
SELECT A.a , B.b
FROM tblA as A , tblB b
WHERE A.a COLLATE Chinese_PRC_CI_AS = B.a COLLATE Chinese_PRC_CI_AS



테이블 및 디비 Collation을 변경 또는 확인하기 위해서는 아래와 같이 가능합니다.


 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT FROM ::fn_helpcollations() -- 사용 가능한 Collation 확인
GO
SELECT SERVERPROPERTY('collation'-- 현재 Collation 정보 확인
GO
SELECT name, collation_name FROM sys.columns -- 컬럼 별 Collation 정보 검색
where Collation_name is not null
order by Collation_name
GO
-- 변경 방법
ALTER TABLE 테이블명
ALTER COLUMN 칼럼명 VARCHAR(50) COLLATE 변경할 Collation
GO



변경 중 에러 아래와 같은 에러 발생시

 
1
2
3
4
서버: 메시지 5074, 수준 16, 상태 8, 줄 1
개체 'pk_테이블명은'은(는) 열 '칼럼명'에 종속되어 있습니다.
서버: 메시지 4922, 수준 16, 상태 1, 줄 1
하나 이상의 개체가 이 열을 액세스하기 때문에 ALTER TABLE ALTER COLUMN '칼럼명'이(가) 실패했습니다.


기본키 제거 -> Collation 변경 -> 기본키 재생성 순으로 하시면 됩니다.


참고 url

http://www.nextstep.co.kr/93Viewer

http://rocabilly.tistory.com/53Viewer

[본문링크] Collation 충돌 해결 및 Collation 변경
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34421
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.