nvarchar (MAX)가 보유 할 최대 문자 수는 얼마입니까?


102

나는 개념이 처음입니다 nvarchar(MAX). 얼마나 많은 문자를 담을 수 있습니까?

답변:


155

맥스. 용량은 2GB의 공간 NVARCHAR(MAX)입니다. 따라서 필드에 맞는 2 바이트 문자가 10 억 개가 조금 넘습니다 .

다른 답변의 더 자세한 번호를 사용하여 저장할 수 있어야합니다.

(2 ^ 31 - 1 - 2) / 2 = 1'073'741'822 double-byte characters

1 billion, 73 million, 741 thousand and 822 characters to be precise

당신의 NVARCHAR(MAX)열 (불행하게도, 후반 문자가 낭비되는 것을 ...)

업데이트 : @MartinMulder가 지적했듯이 모든 가변 길이 문자 열에는 실제 길이를 저장하는 데 2 ​​바이트 오버 헤드가 2 ^ 31 - 1있습니다. 따라서 이전에 규정 한 길이 에서 2 바이트를 더 빼야했습니다. 따라서 1 개의 유니 코드 문자를보다 적게 저장할 수 있습니다. 나는 전에 주장했다.


1
와우 ... 그래서 나는 최대 크기 유효성 검사 규칙을 설정하는 것에 대해 정말로 걱정할 필요가 없다고 생각합니다. 그래도 nvarchar (MAX)를 사용할 때 조심하는 것이 좋습니다.
quakkels 2010

20
@quakkels : Tolstoi 'War and Peace (약 310 만 자)를 거의 350 회 이상 돌파 할 계획이 아니라면 용량에 대해 걱정할 필요가 없습니다. VARCHAR / NVARCHAR 유형이므로 항상 필요한만큼만 공간을 사용합니다. 낭비되거나 불필요하게 예약 된 공간에 대해 걱정할 필요가 없습니다 ...
marc_s

2
정말? 멋지네요. 호기심에서, 어떤 경우에 nvarchar (MAX)를 사용하고 싶지 않습니까?
quakkels 2010

5
@quakkels : VARCHAR(MAX)아시아, 아랍 또는 키릴 어에 대한 2 바이트 지원이 필요하지 않은 경우를 사용 하십시오. (N)VARCHAR(x)문자열이 x 자보다 길지 않을 것이라는 것을 알고있는 경우 사용하십시오 ( NVARCHAR(MAX)이름 에는 사용하지 마십시오 - NVARCHAR(50)또는 당신에게 의미가있는 것을 사용하십시오)
marc_s

1
나는 방금 아침에 똑같은 질문을했고 두 답변 모두 내 얼굴에 큰 웃음을 불러 일으켰습니다. +1.
Matthis Kohli

11

에서 CHAR 및 VARCHAR (Transact-SQL)를 참조하십시오

varchar [(n | 최대)]

가변 길이, 비 유니 코드 문자 데이터. n은 1에서 8,000 사이의 값일 수 있습니다. max는 최대 저장소 크기가 2 ^ 31-1 바이트임을 나타냅니다. 저장 크기는 입력 된 데이터의 실제 길이 + 2 바이트입니다. 입력 된 데이터의 길이는 0 자입니다. varchar의 ISO 동의어는 문자가 다양하거나 문자가 다양합니다.


4

2 ^ 31-1 바이트. 따라서 varchar (max)의 경우 2 ^ 31-1 자 미만이고 nvarchar (max)의 경우 절반 미만입니다.

nchar 및 nvarchar

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.