당연한 이야기지만
varchar는 가변 문자열
nvarchar을 가변 유니코드 문자열 입니다.

다국어지원을 할거면 당연이 nvarchar를 사용하여야 합니다.
(nchar, ntext 등등)

두가지를 나누는 이유는 varchar는 영문이나 숫자등은 1바이트, 한글이나 한자 같은 것들은 2바이트로 저장을 합니다.
nvarchar의 경우는 어떤문자든 2바이트로 저장을 하죠.


이것을 테스트 해보려면 다음 쿼리를 실행해 보시면 됩니다.

Declare @test1 nvarchar(3);
Declare @test2 varchar(3);

set @test1 = '가나다';
set @test2 = '가나다';

select @test1, @test2, LEN(@test1), LEN(@test2);

varchar(3)의 경우 한글이 3자가 안들어가는 것을 알수 있죠.
그래서 다국어 지원의 경우 nvarchar를 사용해야 합니다.
nvarchar를 호환성은 좋지만 용량이 크다라고 표현합니다.

그런데 테이블을 만들어서 테스트를 해보니....


앵? 똑같습니다 ㅡ,.ㅡ;;;
왜인지는 모르겟지만.....원래 크기는 nvarchar가 더 큽니다.
(아마도 데이터가 너무 적어서 그럴지도 ㅡ.-;;)



  1. 지나가던허접 2019.07.24 02:02  Address  Edit/Delete  Reply

    일본어나 중국어 등을 입력해도 동일한가요 ?

댓글 작성

이름
패스워드
홈페이지
비밀글