다음을 통해 공유


Windows 데이터 정렬 이름(Transact-SQL)

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스

SQL Server의 절에 COLLATE Windows 데이터 정렬 이름을 지정합니다. Windows 데이터 정렬 이름은 데이터 정렬 지정자와 비교 스타일로 구성됩니다.

Transact-SQL 구문 표기 규칙

구문

<Windows_collation_name> ::=
<CollationDesignator>_<ComparisonStyle>

<ComparisonStyle> ::=
{ <CaseSensitivity>_<AccentSensitivity> [ _<KanatypeSensitive> ] [ _<WidthSensitive> ] [ _<VariationSelectorSensitive> ]
}
| { _UTF8 }
| { _BIN | _BIN2 }

인수

CollationDesignator

Windows 데이터 정렬에 사용할 기본 데이터 정렬 규칙을 지정합니다. 기본 데이터 정렬 규칙은 다음을 다룹니다.

  • 사전 정렬을 지정한 경우 적용되는 정렬 및 비교 규칙입니다. 정렬 규칙은 알파벳이나 언어를 기준으로 적용됩니다.
  • varchar 데이터를 저장하는 데 사용되는 코드 페이지입니다.

예는 다음과 같습니다.

  • Latin1_General 또는 French: 둘 다 코드 페이지를 1252사용합니다.
  • Turkish: 코드 페이지를 1254사용합니다.

CaseSensitivity

CI 는 대/소문자를 구분하지 않도록 지정하고 대 CS /소문자를 구분합니다.

AccentSensitivity

AI 는 악센트를 구분 AS 하지 않도록 지정하고 악센트 구분을 지정합니다.

KanatypeSensitive

이 옵션을 생략하면 kanatype-insensitive가 KS 지정되며, kanatype 구분을 지정합니다.

WidthSensitivity

이 옵션을 생략하면 너비를 구분 WS 하지 않도록 지정하고 너비를 구분합니다.

VariationSelectorSensitivity

적용 대상: SQL Server 2017(14.x) 이상 버전

이 옵션을 생략하면 변형 선택기를 구분 VSS 하지 않도록 지정하고 변형 선택기를 구분합니다.

UTF8

적용 대상: SQL Server 2019(15.x) 이상 버전

적합한 데이터 형식에 사용할 UTF-8 인코딩을 지정합니다. 자세한 내용은 데이터 정렬 및 유니코드 지원을 참조하십시오.

{ BIN | BIN2 }

  • BIN 는 사용할 이전 버전과 호환되는 이진 정렬 순서를 지정합니다.
  • BIN2 는 코드 포인트 비교 의미 체계를 사용하는 이진 정렬 순서를 지정합니다.

설명

데이터 정렬 버전에 따라 일부 코드 요소에는 정렬 가중치 또는 대문자/소문자 매핑이 정의되지 않을 수 있습니다. 예를 들어 동일한 문자가 지정되었지만 동일한 데이터 정렬의 LOWER 다른 버전에서 함수의 출력을 비교합니다.

SELECT NCHAR(504) COLLATE Latin1_General_CI_AS AS [Uppercase],
       NCHAR(505) COLLATE Latin1_General_CI_AS AS [Lowercase];

결과 집합은 다음과 같습니다.

열 이름 결과
Uppercase Ǹ
Lowercase ǹ

첫 번째 문은 이전 데이터 정렬에서 이 문자의 대문자 및 소문자 형식을 모두 보여 줍니다(데이터 정렬은 유니코드 데이터로 작업할 때 문자의 가용성에 영향을 주지 않음).

SELECT LOWER(NCHAR(504) COLLATE Latin1_General_CI_AS) AS [Version80Collation],
       LOWER(NCHAR(504) COLLATE Latin1_General_100_CI_AS) AS [Version100Collation];

결과 집합은 다음과 같습니다.

열 이름 결과
Version80Collation Ǹ
Version100Collation ǹ

두 번째 문은 데이터 정렬이 있을 때 대문자 문자가 반환되는 것을 보여줍니다. 이 코드 포인트에는 해당 데이터 정렬에 정의된 소문자 매핑이 없기 때문입니다 Latin1_General_CI_AS.

일부 언어에서 작동하는 경우 이전 데이터 정렬을 사용하지 않는 것이 중요할 수 있습니다. 예를 들어 텔레구어의 경우 이 값은 True입니다.

경우에 따라 Windows 데이터 정렬 및 SQL Server 데이터 정렬은 동일한 쿼리에 대해 서로 다른 쿼리 계획을 생성할 수 있습니다.

예제

다음 표에서는 Windows 데이터 정렬 이름의 몇 가지 예를 설명합니다.

데이터 정렬 설명
Latin1_General_100_CI_AS 데이터 정렬은 Latin1 일반 사전 정렬 규칙을 사용하고 코드 페이지에 1252매핑합니다. 버전 _100 데이터 정렬이며 대/소문자를 구분하지 않으며(CI) 악센트 구분(AS)입니다.
Estonian_CS_AS 데이터 정렬은 에스토니아어 사전 정렬 규칙을 사용하고 코드 페이지에 1257매핑됩니다. 버전 _80 데이터 정렬(이름에 버전 번호가 없음)이며 대/소문자 구분(CS) 및 악센트 구분(AS)입니다.
Japanese_Bushu_Kakusu_140_BIN2 데이터 정렬은 이진 코드 포인트 정렬 규칙을 사용하고 코드 페이지에 932매핑합니다. 버전 _140 데이터 정렬이며 일본 부슈 가쿠수 사전 정렬 규칙은 무시됩니다.

Windows 데이터 정렬

SQL Server의 인스턴스에서 지원하는 Windows 데이터 정렬을 나열하려면 다음 쿼리를 실행합니다.

SELECT *
FROM sys.fn_helpcollations()
WHERE [name] NOT LIKE N'SQL%';