관리 메뉴

웹개발자의 기지개

[MS-SQL] 한글문자 깨질때 nvarchar 이용 본문

SQL/MS-SQL

[MS-SQL] 한글문자 깨질때 nvarchar 이용

http://portfolio.wonpaper.net 2020. 10. 11. 18:27

한글이 깨질때

MS-SQL 상으로 varchar 기존 칼럼형태를 이용하지 말고 문자형은 nvarchar 를 이용하도록 하자.

 

그런대로 깨진다면 DB 자체나 테이블 자체가 charset 이 한글형이 아니라서 ??? 형태로 한글이 다 깨져서 입력될수 있다. 

 

한글형 : Korean_Wansung_CI_AS 

 

 

--- 언어확인

Select @@LANGUAGE

 

---- 데이터베이스정보 Collaction_name 으로 Charset 확인

Select * from sys.databases;

 

---- 데이터베이스를 Korean_Wansung_CI_AS 로 변경하기

ALTER DATABASE 디비명 COLLATE Korean_Wansung_CI_AS

GO

 

---- 칼럼을 Korean_Wansung_CI_AS 으로 변경

ALTER TABLE 테이블명 ALTER COLUMN 칼럼명 NVARCHAR(50) COLLATE Korean_Wansung_CI_AS

GO

 

 

Korean                  :  한국어

Wansung               : 정렬규칙 (완성형)

CI case-insensitive    :  대소문자 구분

AS accent-insensitive : 악센트 구분

 

대소문자 구분 : CS(구분) , CI(구분안함)

악센트 구분 : AS(구분), AI(구분안함)

 

 

DB 상으로 Korean 형태로 변경할때 아래와 같은 에러를 접할수 있다.

 

the database could not be exclusively locked to perform the operation. alter database failed

 

 

ALTER DATABASE 디비명 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

GO 

 

ALTER DATABASE 디비명 COLLATE Korean_Wansung_CI_AS; 

GO 

 

ALTER DATABASE 디비명 SET MULTI_USER; 

GO

 

참고사이트1 : blog.naver.com/PostView.nhn?blogId=hiizero&logNo=220906248427

참고사이트2 : rosalice.tistory.com/8

 

Comments