보충 문자

업데이트: 2006년 12월 12일

SQL Server 2005에서는 UCS-2 인코딩 체계를 사용하여 이진 형식으로 유니코드 문자를 인코딩합니다. 중국어 같은 일부 언어에서는 유니코드 표준에 포함되어 있지 않고 자주 사용하지 않는 추가 문자를 정의합니다. UCS-2에서는 쌍으로 묶을 경우 저장 영역에 보충 문자를 정의하는 두 개의 정의되지 않은 유니코드 문자로 이러한 보충 문자를 저장합니다. 따라서 손실이나 손상의 위험 없이 SQL Server에서 보충 문자를 저장할 수 있습니다. 또한 SQL Server 2005는 Business Intelligence 같은 도구 기반 응용 프로그램 등의 SQL Server 기반 응용 프로그램에서 보충 문자를 사용하고 표시할 수 있습니다.

Windows Vista용 또는 Microsoft Office 2007용 Microsoft IME(입력기)를 사용하는 경우 보충 문자는 UCS 코드 포인트 U+10000 이상에서 표시됩니다.

보충 문자를 사용할 때는 다음 제한 사항을 고려하십시오.

  • 90개의 데이터 정렬 버전에 대한 정렬 및 비교 연산에만 보충 문자를 사용할 수 있습니다. 이러한 비교는 코드 포인트만 기반으로 하고 언어적으로 의미 있는 다른 방법은 기반으로 하지 않습니다. ORDER BY, GROUP BY 및 DISTINCT 같은 연산에 보충 문자를 사용할 때, 특히 같은 연산에 보충 문자와 보충 문자가 아닌 문자가 포함될 때는 주의해야 합니다. 90개의 데이터 정렬 버전은 해당 이름에 추가된 접미사 90으로 알 수 있습니다. 예를 들어 일본어 데이터 정렬 대신 Japanese_90을 사용합니다. 자세한 내용은 설치 프로그램에서 데이터 정렬 설정을 참조하십시오.
  • 보충 문자는 두 개의 더블바이트 문자로 된 쌍으로 저장되므로 LEN() 함수에서 인수 문자열에 포함된 각 보충 문자에 대해 값 2를 반환합니다. 마찬가지로 CHARINDEX 및 PATINDEX 함수도 문자열 내 보충 문자의 길이를 잘못 나타내며 NCHAR 함수도 보충 문자 쌍의 절반만 나타내는 문자를 반환합니다. binary 또는 varbinary 값을 보충 문자로 변환해도 보충 문자 쌍의 절반만 생성됩니다.
  • LEFT, RIGHT, SUBSTRING, STUFF 및 REVERSE 함수는 보충 문자 쌍을 분할하여 예기치 않은 결과를 초래할 수 있습니다.
  • 보충 문자는 밑줄(_), 공백( ) 및 캐럿(^) 와일드카드 문자와 함께 사용할 수 없습니다.
  • 보충 문자는 데이터베이스 개체 이름 같은 메타데이터에 사용할 수 없습니다.
  • 고유한 저장 메커니즘 때문에 보충 문자가 있으면 서버 및 데이터베이스 업그레이드 작업 동안 리소스가 더 소모될 수 있습니다.

SQL Server 2005에서는 CLR(공용 언어 런타임) 함수 내의 보충 문자 인식 문자열 처리를 보여 주는 예제를 제공합니다. 자세한 내용은 보충 문자 인식 문자열 조작을 참조하십시오.

참고 항목

개념

특수 문자 인코딩 작업

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • 문자가 보충 문자인지 여부를 결정하는 방법에 대해 설명합니다.