Programing

mssql DB 데이타 정렬 변경

handam 2013. 10. 11. 16:14

 

 

mssql 에서는 데이터베이스 생성 시 데이터 정렬 옵션을 정하게 되는데

 

mssql 설치 시의 기본 셋팅으로 되어있고(보통 Korean_Wansung_CI_AS)

 

나중에 변경하려 한다면 기존의 테이블을 삭제해야 옵션이 적용된다.

 

 

미리 공 테이블 생성해놓고 데이터 insert 해보길 잘했다..

 

설마 고유키(primary key)에 대소문자 구분이 되어있을 줄이야...

 

그래서 변경하려고 검색하여 query 문을 실행해보니 왠걸, 오류가 터진다.

 

오류 메세지 5030과 5072

 

DB에 다유저 속성이 활성화 되어있어 배타잠금이 안되기 때문이란다.

 

고유유저 속성으로 활성화 시킨 후 수정 하고 다시 멀티유저로 속성을 변경해주어야 했다.

 

- 선택 DB 정보 보기

select * from fn_helpcollations();

 

- 멀티유저에서 싱글유저로 속성변경

alter database 디비명 set single_user with rollback immediate;

 

- 수정

alter database 디비명
collate Korean_Wansung_CS_AS;

 

- 확인

exec sp_helpdb 디비명;

 

- 유서 속성 재변경

alter database COSS set multi_user;

 

하지만 이렇게 했음에도 같은 오류가 터진다면 이미 생성된 테이블의 속성이

 

CI_AS 이기 때문인데 직접 테이블을 수정하는 방법밖에는 없다고 알고 있다.

 

컬럼.. 하나...하나... 수십, 수백개의 테이블을 -_-....

 

난 참 다행이 데이터도 없었고 테이블 속성에서 제대로 변경이 된 것을 확인할 수 있었다.

 

참고로 숫자컬럼은 상관 없다. 문자열 컬럼이기에 어쩔 수 없이 감행했던(?) 방법이다.

 

그리고 옵션에 대한 자료도 찾았다.

 

참고하시길... http://blog.daum.net/z-dream/17280549

반응형