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

적용 대상:SQL 서버Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric 의 SQL 분석 엔드포인트Microsoft Fabric 의 웨어하우스Microsoft Fabric의 SQL 데이터베이스

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 인코딩을 지정합니다. 자세한 내용은 데이터 정렬 및 유니코드 지원을 참조하십시오.

{ 빈 | 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%';