질문 1 : 8000 명의 캐릭터는 어떻게 작동하며 어디에서 알아야합니까?
n을 8000으로 설정하면 8000자가 재생됩니다. char, nchar, nvarchar 및 varchar 에 대한 Precision, Scale 및 Length (Transact-SQL) 참조를 알고 있어야합니다 . 반대로 n을 max (따옴표 없음)로 설정하면 SQL Server에서 인용 부호에 언급 된대로 최대 바이트 수를 저장하고 반환합니다.
질문 2 :이 열에 대한 .net 데이터 리더 쿼리는 항상 100 000 + 문자로 전체 결과를 반환합니까?
이것은 .Net (SQL Server 아님) 질문이지만 .Net 데이터 리더는 바이트 스트림을 가져옵니다. 바이트는 문자가 아니며 SQL Server는 문자가 아닌 바이트를 반환합니다. n이 8000으로 설정되고 데이터 유형이 nvarchar 인 경우 SQL Server는 최대 8000 바이트를 반환하며 .Net 데이터 리더는 4000 개의 유니 코드 문자로 해석 할 수 있습니다. n이 8000으로 설정되고 데이터 유형이 varchar 인 경우 SQL Server는 최대 8000 바이트를 반환하며 .Net 데이터 리더는 최대 8000 ANSI 문자로 해석 할 수 있습니다. n이 max로 설정되고 데이터 유형이 nvarchar 인 경우 SQL Server는 최대 2 ^ 31-1 바이트를 반환하며, .Net 데이터 리더는 최대 (2 ^ 31-1) / 2 자로 해석 될 수 있습니다. n이 max로 설정되고 데이터 유형이 varchar 인 경우 SQL Server는 최대 2 ^ 31-1 바이트를 반환하며 .Net 데이터 리더는 최대 2 ^ 31-1 ANSI 문자로 해석 할 수 있습니다.
더 많은 "문자"(더 정확하게 : 바이트)를 저장할 수 있기 때문에 char 또는 varchar (nchar 또는 nvarchar 대신)를 사용하도록 선택하면 많은 유니 코드 문자에 동등한 ANSI 문자가 없으므로 (따라서 전 세계 사용자는 앱에서 현지화 된 / 네이티브 문자를 볼 수 없습니다).
varchar(max)
한 번 불렀다text
과 다른 데이터 유형으로 처리 하였다.